Initial Commit ...
This commit is contained in:
@@ -0,0 +1,101 @@
|
||||
using System;
|
||||
using Microsoft.Extensions.Logging;
|
||||
using xCommons.Extensions;
|
||||
using xExceptions.Constants;
|
||||
|
||||
namespace xModels.Base {
|
||||
/// <summary>
|
||||
/// a Base class which carry required things as a Father for it's childs ...
|
||||
/// </summary>
|
||||
public abstract class XBaseClass {
|
||||
//
|
||||
#region Properties ...
|
||||
/// <summary>
|
||||
/// LogTag which Specified for this class ...
|
||||
/// </summary>
|
||||
private readonly string LOG_TAG;
|
||||
|
||||
/// <summary>
|
||||
/// logger instance ...
|
||||
/// </summary>
|
||||
private readonly ILogger logger;
|
||||
#endregion
|
||||
|
||||
//
|
||||
#region Constructor ...
|
||||
public XBaseClass (ILoggerFactory loggerFactory) {
|
||||
//
|
||||
// Preparing Log Tag ...
|
||||
LOG_TAG = this.GetType ().Name;
|
||||
|
||||
//
|
||||
Type classType = this.GetType ();
|
||||
logger = loggerFactory.CreateLogger (classType);
|
||||
}
|
||||
#endregion
|
||||
|
||||
//
|
||||
#region Protected ...
|
||||
/// <summary>
|
||||
/// Extract Prepared Log MEssage ...
|
||||
/// </summary>
|
||||
/// <param name="message"></param>
|
||||
/// <returns></returns>
|
||||
protected virtual string GetLogMessage (string message) {
|
||||
//
|
||||
// Prepare Log Message ...
|
||||
message = $"{LOG_TAG} => {message}";
|
||||
return message;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Logging specific Message ...
|
||||
/// </summary>
|
||||
/// <param name="message"></param>
|
||||
/// <param name="logLevel"></param>
|
||||
protected virtual void LogMessage (
|
||||
string message,
|
||||
LogLevel logLevel = LogLevel.Information
|
||||
) {
|
||||
//
|
||||
// Validate Args ...
|
||||
if (message.IsNullOrEmpty ()) {
|
||||
throw XException.InvalidArgs
|
||||
.ToException ();
|
||||
}
|
||||
|
||||
//
|
||||
// Prepare Log Message ...
|
||||
message = GetLogMessage (message);
|
||||
|
||||
//
|
||||
// Logging Message ...
|
||||
logger.Log (
|
||||
message: message,
|
||||
logLevel: logLevel
|
||||
);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Logging specific Message to Console ...
|
||||
/// </summary>
|
||||
/// <param name="message"></param>
|
||||
protected virtual void ConsoleMessage (string message) {
|
||||
//
|
||||
// Validate Args ...
|
||||
if (message.IsNullOrEmpty ()) {
|
||||
throw XException.InvalidArgs
|
||||
.ToException ();
|
||||
}
|
||||
|
||||
//
|
||||
// Prepare Log Message ...
|
||||
message = GetLogMessage (message);
|
||||
|
||||
//
|
||||
// Logging Message ...
|
||||
Console.WriteLine (message);
|
||||
}
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
namespace xModels.Base {
|
||||
/// <summary>
|
||||
/// Descriptors classes Map required data for creating Entities on Seeding time ...
|
||||
/// this is a Base Descriptor class ...
|
||||
/// </summary>
|
||||
public abstract class XBaseDescriptor { }
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
namespace xModels.Base {
|
||||
/// <summary>
|
||||
/// DTO - Data Transfer Objects is a kind of classes which Represent Entities ...
|
||||
/// this is base Dto class ...
|
||||
/// </summary>
|
||||
public abstract class XBaseDto { }
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
|
||||
namespace xModels.Base {
|
||||
/// <summary>
|
||||
/// Base Entity Class
|
||||
/// </summary>
|
||||
/// <typeparam name="T"></typeparam>
|
||||
public abstract class XBaseEntity<T> {
|
||||
/// <summary>
|
||||
/// Entity Id
|
||||
/// </summary>
|
||||
/// <value>entity unique id</value>
|
||||
[Key]
|
||||
[Required]
|
||||
public T Id { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Provided Soft Delete Behaviour ...
|
||||
/// </summary>
|
||||
/// <value></value>
|
||||
public bool Deleted { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
using System;
|
||||
|
||||
namespace xModels.Base {
|
||||
/// <summary>
|
||||
/// a BaseEntity Class which has Id of Guid type
|
||||
/// </summary>
|
||||
public class XBaseGuidIDEntity : XBaseEntity<Guid> { }
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
|
||||
namespace xModels.Base {
|
||||
/// <summary>
|
||||
/// a BaseEntity Class which has Id of int type
|
||||
/// </summary>
|
||||
public abstract class XBaseIntIDEntity : XBaseEntity<int> { }
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace xModels.Base {
|
||||
/// <summary>
|
||||
/// Range Request Classes Carry a List of Objects
|
||||
/// </summary>
|
||||
/// <typeparam name="T"></typeparam>
|
||||
public class XBaseRangeRequest<T> {
|
||||
public IEnumerable<T> Items { get; set; } = new HashSet<T> ();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
namespace xModels.Base {
|
||||
public abstract class XBaseStorableDto<TKey> : XBaseDto {
|
||||
public abstract TKey Id { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
using System;
|
||||
|
||||
namespace xModels.Base {
|
||||
/// <summary>
|
||||
/// a BaseEntity Class which has Id of string type
|
||||
/// </summary>
|
||||
public class XBaseStringIDEntity : XBaseEntity<string> { }
|
||||
}
|
||||
Reference in New Issue
Block a user