public void Configure(EntityTypeBuilder <CashAccountTransaction> entity)
 {
     entity.ToTable("CashAccountTransactions", schema: "Finance");
     entity.HasKey(e => e.Id);
     entity.Property(p => p.Id).HasColumnType("INT").HasColumnName("CashTransactionId");
     entity.Property(p => p.CashAccountId)
     .HasColumnType("UNIQUEIDENTIFIER")
     .HasColumnName("CashAccountId")
     .IsRequired();
     entity.Property(p => p.CashTransactionType)
     .HasColumnType("INT")
     .HasColumnName("CashTransactionTypeId")
     .IsRequired();
     entity.Property(p => p.CashAcctTransactionDate)
     .HasConversion(p => p.Value, p => CashAcctTransactionDate.Create(p))
     .HasColumnType("datetime2(0)")
     .HasColumnName("CashAcctTransactionDate")
     .IsRequired();
     entity.Property(p => p.CashAcctTransactionAmount)
     .HasConversion(p => p.Value, p => CashAcctTransactionAmount.Create(p))
     .HasColumnType("DECIMAL(18,2)")
     .HasColumnName("CashAcctTransactionAmount")
     .IsRequired();
     entity.Property(p => p.AgentId)
     .HasConversion(p => p.Value, p => ExternalAgentId.Create(p))
     .HasColumnType("UNIQUEIDENTIFIER")
     .HasColumnName("AgentId")
     .IsRequired();
     entity.Property(p => p.EventId)
     .HasConversion(p => p.Value, p => EconomicEventId.Create(p))
     .HasColumnType("UNIQUEIDENTIFIER")
     .HasColumnName("EventId")
     .IsRequired();
     entity.Property(p => p.CheckNumber)
     .HasConversion(p => p.Value, p => CheckNumber.Create(p))
     .HasColumnType("NVARCHAR(25)")
     .HasColumnName("CheckNumber")
     .IsRequired();
     entity.Property(p => p.RemittanceAdvice)
     .HasColumnType("NVARCHAR(50)")
     .HasColumnName("RemittanceAdvice");
     entity.Property(p => p.UserId)
     .HasConversion(p => p.Value, p => UserId.Create(p))
     .HasColumnType("UNIQUEIDENTIFIER")
     .HasColumnName("UserId")
     .IsRequired();
     entity.Property(e => e.CreatedDate)
     .HasColumnType("datetime2(7)")
     .ValueGeneratedOnAdd()
     .HasDefaultValueSql("sysdatetime()");
     entity.Property(e => e.LastModifiedDate).HasColumnType("datetime2(7)");
 }
        public async Task ShouldInsert_CashTransaction_UsingCashAccountAggregate()
        {
            CashAccount account = await _cashAcctRepo.GetByIdAsync(new Guid("6a7ed605-c02c-4ec8-89c4-eac6306c885e"));

            CashAccountTransaction transaction = new CashAccountTransaction
                                                 (
                CashTransactionType.CashDisbursementLoanPayment,
                CashAccountId.Create(account.Id),
                CashAcctTransactionDate.Create(new DateTime(2021, 11, 7)),
                CashAcctTransactionAmount.Create(4363.82M),
                ExternalAgentId.Create(new Guid("12998229-7ede-4834-825a-0c55bde75695")),
                EconomicEventId.Create(new Guid("cf4279a1-da26-4d10-bff0-cf6e0933661c")),
                CheckNumber.Create("12214554"),
                "12M877",
                UserId.Create(new Guid("660bb318-649e-470d-9d2b-693bfb0b2744"))
                                                 );

            account.AddCashAccountTransaction(transaction);
            _cashAcctRepo.Update(account);
            await _unitOfWork.Commit();
        }