diff --git a/WinIn.FasterZ.Wms.Be/WinIn.FasterZ.Wms/WinIn.FasterZ.Wms/src/WinIn.FasterZ.Wms.Application.Contracts/AppBase/CreateUpdateBaseDto/CreateUpdateBaseDto.cs b/WinIn.FasterZ.Wms.Be/WinIn.FasterZ.Wms/WinIn.FasterZ.Wms/src/WinIn.FasterZ.Wms.Application.Contracts/AppBase/CreateUpdateBaseDto/CreateUpdateBaseDto.cs deleted file mode 100644 index 1faabdf82..000000000 --- a/WinIn.FasterZ.Wms.Be/WinIn.FasterZ.Wms/WinIn.FasterZ.Wms/src/WinIn.FasterZ.Wms.Application.Contracts/AppBase/CreateUpdateBaseDto/CreateUpdateBaseDto.cs +++ /dev/null @@ -1,8 +0,0 @@ -using System; -using Volo.Abp.Application.Dtos; - -namespace WinIn.FasterZ.Wms.AppBase.CreateUpdateBaseDto; - -public class CreateUpdateBaseDto : EntityDto -{ -} \ No newline at end of file diff --git a/WinIn.FasterZ.Wms.Be/WinIn.FasterZ.Wms/WinIn.FasterZ.Wms/src/WinIn.FasterZ.Wms.Application.Contracts/AppBase/FasterBaseDto/FasterAuditedEntityBaseDto.cs b/WinIn.FasterZ.Wms.Be/WinIn.FasterZ.Wms/WinIn.FasterZ.Wms/src/WinIn.FasterZ.Wms.Application.Contracts/AppBase/FasterBaseDto/FasterAuditedEntityBaseDto.cs new file mode 100644 index 000000000..6c75575db --- /dev/null +++ b/WinIn.FasterZ.Wms.Be/WinIn.FasterZ.Wms/WinIn.FasterZ.Wms/src/WinIn.FasterZ.Wms.Application.Contracts/AppBase/FasterBaseDto/FasterAuditedEntityBaseDto.cs @@ -0,0 +1,9 @@ +using System; +using Volo.Abp.Application.Dtos; + +namespace WinIn.FasterZ.Wms.AppBase.FasterBaseDto; + +public class FasterAuditedEntityBaseDto : AuditedEntityDto +{ + public string ConcurrencyStamp { get; set; } +} \ No newline at end of file diff --git a/WinIn.FasterZ.Wms.Be/WinIn.FasterZ.Wms/WinIn.FasterZ.Wms/src/WinIn.FasterZ.Wms.Application.Contracts/AppBase/FasterBaseDto/FasterCreateUpdateBaseDto.cs b/WinIn.FasterZ.Wms.Be/WinIn.FasterZ.Wms/WinIn.FasterZ.Wms/src/WinIn.FasterZ.Wms.Application.Contracts/AppBase/FasterBaseDto/FasterCreateUpdateBaseDto.cs new file mode 100644 index 000000000..2975d0363 --- /dev/null +++ b/WinIn.FasterZ.Wms.Be/WinIn.FasterZ.Wms/WinIn.FasterZ.Wms/src/WinIn.FasterZ.Wms.Application.Contracts/AppBase/FasterBaseDto/FasterCreateUpdateBaseDto.cs @@ -0,0 +1,10 @@ +using System; + +namespace WinIn.FasterZ.Wms.AppBase.FasterBaseDto; + +public class FasterCreateUpdateBaseDto +{ + public Guid Id { get; set; } + + public string ConcurrencyStamp { get; set; } +} \ No newline at end of file diff --git a/WinIn.FasterZ.Wms.Be/WinIn.FasterZ.Wms/WinIn.FasterZ.Wms/src/WinIn.FasterZ.Wms.Application.Contracts/Z_Business/StoreWorkOrder/Dtos/CreateUpdateStoreWorkOrderDto.cs b/WinIn.FasterZ.Wms.Be/WinIn.FasterZ.Wms/WinIn.FasterZ.Wms/src/WinIn.FasterZ.Wms.Application.Contracts/Z_Business/StoreWorkOrder/Dtos/CreateUpdateStoreWorkOrderDto.cs index 04d17825e..1e1cbf8b6 100644 --- a/WinIn.FasterZ.Wms.Be/WinIn.FasterZ.Wms/WinIn.FasterZ.Wms/src/WinIn.FasterZ.Wms.Application.Contracts/Z_Business/StoreWorkOrder/Dtos/CreateUpdateStoreWorkOrderDto.cs +++ b/WinIn.FasterZ.Wms.Be/WinIn.FasterZ.Wms/WinIn.FasterZ.Wms/src/WinIn.FasterZ.Wms.Application.Contracts/Z_Business/StoreWorkOrder/Dtos/CreateUpdateStoreWorkOrderDto.cs @@ -1,4 +1,5 @@ using System; +using WinIn.FasterZ.Wms.AppBase.CreateUpdateBaseDto; namespace WinIn.FasterZ.Wms.Z_Business.StoreWorkOrder.Dtos; @@ -9,7 +10,7 @@ using WinIn.FasterZ.Wms.Z_Business.StoreWorkOrderDetail; using WinIn.FasterZ.Wms.Z_Business.StoreWorkOrderDetail.Dtos; [Serializable] -public class CreateUpdateStoreWorkOrderDto +public class CreateUpdateStoreWorkOrderDto: CreateUpdateBaseDto { public DateTime ActiveDate { get; set; } diff --git a/WinIn.FasterZ.Wms.Be/WinIn.FasterZ.Wms/WinIn.FasterZ.Wms/src/WinIn.FasterZ.Wms.Application.Contracts/Z_Business/StoreWorkOrder/Dtos/StoreWorkOrderDto.cs b/WinIn.FasterZ.Wms.Be/WinIn.FasterZ.Wms/WinIn.FasterZ.Wms/src/WinIn.FasterZ.Wms.Application.Contracts/Z_Business/StoreWorkOrder/Dtos/StoreWorkOrderDto.cs index ce1b7af52..e5b6fba80 100644 --- a/WinIn.FasterZ.Wms.Be/WinIn.FasterZ.Wms/WinIn.FasterZ.Wms/src/WinIn.FasterZ.Wms.Application.Contracts/Z_Business/StoreWorkOrder/Dtos/StoreWorkOrderDto.cs +++ b/WinIn.FasterZ.Wms.Be/WinIn.FasterZ.Wms/WinIn.FasterZ.Wms/src/WinIn.FasterZ.Wms.Application.Contracts/Z_Business/StoreWorkOrder/Dtos/StoreWorkOrderDto.cs @@ -1,5 +1,6 @@ using System; using Volo.Abp.Application.Dtos; +using WinIn.FasterZ.Wms.AppBase.FasterBaseDto; using WinIn.FasterZ.Wms.Z_Business.StoreWorkOrderDetail.Dtos; namespace WinIn.FasterZ.Wms.Z_Business.StoreWorkOrder.Dtos; @@ -10,7 +11,7 @@ using WinIn.FasterZ.Wms.Permissions; using WinIn.FasterZ.Wms.Z_Business.StoreWorkOrderDetail; [Serializable] -public class StoreWorkOrderDto : AuditedEntityDto +public class StoreWorkOrderDto : FasterAuditedEntityBaseDto { public DateTime ActiveDate { get; set; } diff --git a/WinIn.FasterZ.Wms.Be/WinIn.FasterZ.Wms/WinIn.FasterZ.Wms/src/WinIn.FasterZ.Wms.Application.Contracts/Z_Business/StoreWorkOrderDetail/Dtos/CreateUpdateStoreWorkOrderDetailDto.cs b/WinIn.FasterZ.Wms.Be/WinIn.FasterZ.Wms/WinIn.FasterZ.Wms/src/WinIn.FasterZ.Wms.Application.Contracts/Z_Business/StoreWorkOrderDetail/Dtos/CreateUpdateStoreWorkOrderDetailDto.cs index 908db367c..0b3f0ac64 100644 --- a/WinIn.FasterZ.Wms.Be/WinIn.FasterZ.Wms/WinIn.FasterZ.Wms/src/WinIn.FasterZ.Wms.Application.Contracts/Z_Business/StoreWorkOrderDetail/Dtos/CreateUpdateStoreWorkOrderDetailDto.cs +++ b/WinIn.FasterZ.Wms.Be/WinIn.FasterZ.Wms/WinIn.FasterZ.Wms/src/WinIn.FasterZ.Wms.Application.Contracts/Z_Business/StoreWorkOrderDetail/Dtos/CreateUpdateStoreWorkOrderDetailDto.cs @@ -3,10 +3,11 @@ using WinIn.FasterZ.Wms.Z_Business.StoreWorkOrder.Dtos; namespace WinIn.FasterZ.Wms.Z_Business.StoreWorkOrderDetail.Dtos; +using WinIn.FasterZ.Wms.AppBase.CreateUpdateBaseDto; using WinIn.FasterZ.Wms.Permissions; [Serializable] -public class CreateUpdateStoreWorkOrderDetailDto +public class CreateUpdateStoreWorkOrderDetailDto: CreateUpdateBaseDto { public DateTime EffectiveDate { get; set; } diff --git a/WinIn.FasterZ.Wms.Be/WinIn.FasterZ.Wms/WinIn.FasterZ.Wms/src/WinIn.FasterZ.Wms.EntityFrameworkCore/EntityFrameworkCore/WmsDbContext.cs b/WinIn.FasterZ.Wms.Be/WinIn.FasterZ.Wms/WinIn.FasterZ.Wms/src/WinIn.FasterZ.Wms.EntityFrameworkCore/EntityFrameworkCore/WmsDbContext.cs index 8a481eec7..090ed7727 100644 --- a/WinIn.FasterZ.Wms.Be/WinIn.FasterZ.Wms/WinIn.FasterZ.Wms/src/WinIn.FasterZ.Wms.EntityFrameworkCore/EntityFrameworkCore/WmsDbContext.cs +++ b/WinIn.FasterZ.Wms.Be/WinIn.FasterZ.Wms/WinIn.FasterZ.Wms/src/WinIn.FasterZ.Wms.EntityFrameworkCore/EntityFrameworkCore/WmsDbContext.cs @@ -1,3 +1,7 @@ +using System; +using System.Linq; +using System.Threading; +using System.Threading.Tasks; using Microsoft.EntityFrameworkCore; using Volo.Abp.AuditLogging.EntityFrameworkCore; using Volo.Abp.BackgroundJobs.EntityFrameworkCore; @@ -970,14 +974,14 @@ namespace WinIn.FasterZ.Wms.EntityFrameworkCore /// /// public DbSet AuthMenus { get; set; } - /// - /// - /// - public DbSet StoreTransferNotes { get; set; } - /// - /// - /// - public DbSet StoreTransferNoteDetails { get; set; } + /// + /// + /// + public DbSet StoreTransferNotes { get; set; } + /// + /// + /// + public DbSet StoreTransferNoteDetails { get; set; } public WmsDbContext(DbContextOptions options) : base(options) @@ -2106,7 +2110,7 @@ namespace WinIn.FasterZ.Wms.EntityFrameworkCore }); - + builder.Entity(b => { @@ -3188,24 +3192,58 @@ namespace WinIn.FasterZ.Wms.EntityFrameworkCore }); - builder.Entity(b => - { - b.ToTable(WmsConsts.DbTablePrefix + "Store_TransferNote", WmsConsts.DbSchema, table => table.HasComment("")); - b.ConfigureByConvention(); - + builder.Entity(b => + { + b.ToTable(WmsConsts.DbTablePrefix + "Store_TransferNote", WmsConsts.DbSchema, table => table.HasComment("")); + b.ConfigureByConvention(); + - /* Configure more properties here */ - }); + /* Configure more properties here */ + }); - builder.Entity(b => - { - b.ToTable(WmsConsts.DbTablePrefix + "Store_TransferNoteDetail", WmsConsts.DbSchema, table => table.HasComment("")); - b.ConfigureByConvention(); - + builder.Entity(b => + { + b.ToTable(WmsConsts.DbTablePrefix + "Store_TransferNoteDetail", WmsConsts.DbSchema, table => table.HasComment("")); + b.ConfigureByConvention(); - /* Configure more properties here */ - }); + + /* Configure more properties here */ + }); + } + + public override int SaveChanges() + { + this.ChangeTracker.DetectChanges(); + var modity = this.ChangeTracker.Entries().Where(x => x.State == EntityState.Modified || x.State == EntityState.Added).Select(x => x.Entity).ToList(); + foreach (var item in modity) + { + item?.GetType().GetProperty("ConcurrencyStamp")?.SetValue(item, Guid.NewGuid().ToString()); + } + return base.SaveChanges(); + } + + public override Task SaveChangesAsync(bool acceptAllChangesOnSuccess, CancellationToken cancellationToken = new CancellationToken()) + { + this.ChangeTracker.DetectChanges(); + var modity = this.ChangeTracker.Entries().Where(x => x.State == EntityState.Modified || x.State == EntityState.Added).Select(x => x.Entity).ToList(); + foreach (var item in modity) + { + item?.GetType().GetProperty("ConcurrencyStamp")?.SetValue(item, Guid.NewGuid().ToString()); + } + return base.SaveChangesAsync(acceptAllChangesOnSuccess, cancellationToken); + } + + public override Task SaveChangesOnDbContextAsync(bool acceptAllChangesOnSuccess, + CancellationToken cancellationToken = new CancellationToken()) + { + this.ChangeTracker.DetectChanges(); + var modity = this.ChangeTracker.Entries().Where(x => x.State == EntityState.Modified || x.State == EntityState.Added).Select(x => x.Entity).ToList(); + foreach (var item in modity) + { + item?.GetType().GetProperty("ConcurrencyStamp")?.SetValue(item, Guid.NewGuid().ToString()); + } + return base.SaveChangesOnDbContextAsync(acceptAllChangesOnSuccess, cancellationToken); } } }