initial commit

This commit is contained in:
2026-07-21 15:36:49 +07:00
commit 77f66132bc
2640 changed files with 850901 additions and 0 deletions
+48
View File
@@ -0,0 +1,48 @@
namespace Domain.Common;
public class BaseEntity : IHasSequentialId, IHasIsDeleted, IHasAudit
{
public string Id { get; set; } = null!;
public bool IsDeleted { get; set; }
public DateTime? CreatedAtUtc { get; set; }
public string? CreatedById { get; set; }
public DateTime? UpdatedAtUtc { get; set; }
public string? UpdatedById { get; set; }
public BaseEntity()
{
Id = GenerateSequentialGuid();
IsDeleted = false;
}
private static readonly object _lock = new object();
private string GenerateSequentialGuid()
{
byte[] guidArray = Guid.NewGuid().ToByteArray();
DateTime baseDate = new DateTime(1900, 1, 1);
DateTime now = DateTime.UtcNow;
TimeSpan timeSpan = now - baseDate;
byte[] daysArray = BitConverter.GetBytes(timeSpan.Days);
byte[] msecsArray = BitConverter.GetBytes((long)(timeSpan.TotalMilliseconds % 86400000));
if (BitConverter.IsLittleEndian)
{
Array.Reverse(daysArray);
Array.Reverse(msecsArray);
}
lock (_lock)
{
Array.Copy(daysArray, daysArray.Length - 2, guidArray, guidArray.Length - 6, 2);
Array.Copy(msecsArray, msecsArray.Length - 4, guidArray, guidArray.Length - 4, 4);
}
return new Guid(guidArray).ToString();
}
}