improvements
This commit is contained in:
parent
3df4b45f11
commit
4f1d42453c
|
|
@ -9,7 +9,7 @@ using Microsoft.Extensions.DependencyInjection;
|
|||
|
||||
namespace AyCode.Database.DataLayers.Users
|
||||
{
|
||||
public static class UserDalExtension
|
||||
public static class AcUserDalExtension
|
||||
{
|
||||
//public static bool DeleteUser(this IUserDbContextBase ctx, IUserBase user)
|
||||
//{
|
||||
|
|
@ -32,6 +32,27 @@ public class DbContextBase : DbContext
|
|||
}
|
||||
|
||||
public override int SaveChanges()
|
||||
{
|
||||
UpdateTimeStampInfoProperties();
|
||||
|
||||
return base.SaveChanges();
|
||||
}
|
||||
|
||||
public override Task<int> SaveChangesAsync(CancellationToken cancellationToken = new CancellationToken())
|
||||
{
|
||||
UpdateTimeStampInfoProperties();
|
||||
|
||||
return base.SaveChangesAsync(cancellationToken);
|
||||
}
|
||||
|
||||
public override Task<int> SaveChangesAsync(bool acceptAllChangesOnSuccess, CancellationToken cancellationToken = new CancellationToken())
|
||||
{
|
||||
UpdateTimeStampInfoProperties();
|
||||
|
||||
return base.SaveChangesAsync(acceptAllChangesOnSuccess, cancellationToken);
|
||||
}
|
||||
|
||||
private void UpdateTimeStampInfoProperties()
|
||||
{
|
||||
var entries = ChangeTracker.Entries().Where(e =>
|
||||
e.Entity is not ITimeStampDisableAutoSet && (e is { State: EntityState.Added, Entity: ITimeStampCreated } || e.State is EntityState.Modified or EntityState.Added && e.Entity is ITimeStampModified));
|
||||
|
|
@ -48,8 +69,6 @@ public class DbContextBase : DbContext
|
|||
if (entityEntry.Entity is ITimeStampCreated timeStampCreated)
|
||||
timeStampCreated.Created = utcNow;
|
||||
}
|
||||
|
||||
return base.SaveChanges();
|
||||
}
|
||||
|
||||
protected override void OnModelCreating(ModelBuilder modelBuilder)
|
||||
|
|
|
|||
|
|
@ -8,7 +8,9 @@ using Microsoft.EntityFrameworkCore;
|
|||
|
||||
namespace AyCode.Database.DbContexts.Users
|
||||
{
|
||||
public abstract class UserDbContextBase<TUser, TUserToken> : DbContextBase, IUserDbContextBase<TUser, TUserToken> where TUser : class, IUserBase where TUserToken : class, IUserTokenBase
|
||||
public abstract class UserDbContextBase<TUser, TUserToken> : DbContextBase, IUserDbContextBase<TUser, TUserToken>
|
||||
where TUser : class, IUserBase
|
||||
where TUserToken : class, IUserTokenBase
|
||||
{
|
||||
public required DbSet<TUser> Users { get; set; }
|
||||
public required DbSet<TUserToken> UserTokens { get; set; }
|
||||
|
|
|
|||
|
|
@ -10,18 +10,19 @@ using AyCode.Interfaces.Groups;
|
|||
namespace AyCode.Entities.Groups
|
||||
{
|
||||
//[Table("Groups")]
|
||||
public class GroupBase : IGroupBase
|
||||
public abstract class GroupBase : IGroupBase
|
||||
{
|
||||
public GroupBase() { }
|
||||
protected GroupBase() { }
|
||||
|
||||
public GroupBase(bool isPublic) : this(Guid.NewGuid(), isPublic) { }
|
||||
public GroupBase(Guid id, bool isPublic) : this()
|
||||
protected GroupBase(bool isPublic) : this(Guid.NewGuid(), isPublic) { }
|
||||
|
||||
protected GroupBase(Guid id, bool isPublic) : this()
|
||||
{
|
||||
Id = id;
|
||||
IsPublic = isPublic;
|
||||
}
|
||||
|
||||
//[Key, DatabaseGenerated(DatabaseGeneratedOption.None)]
|
||||
[Key, DatabaseGenerated(DatabaseGeneratedOption.None)]
|
||||
public Guid Id { get; set; }
|
||||
public bool IsPublic { get; set; }
|
||||
public DateTime Created { get; set; }
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@ using System.Threading.Tasks;
|
|||
|
||||
namespace AyCode.Interfaces.Groups
|
||||
{
|
||||
public interface IGroupBase : IEntity, ITimeStampInfo
|
||||
public interface IGroupBase : IEntityGuid, ITimeStampInfo
|
||||
{
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -6,4 +6,5 @@ namespace AyCode.Interfaces.Users;
|
|||
|
||||
public interface IUserBase : IEntityGuid, IEmailAddress, IPassword, ITimeStampInfo
|
||||
{
|
||||
public string? RefreshToken { get; set; }
|
||||
}
|
||||
Loading…
Reference in New Issue