private async Task Update(BuyOrderProcessManager processManager)
 {
     await _connection.ExecuteAsync($@"UPDATE Transactions.{nameof(BuyOrderProcessManager)}
                                     SET WalletId = @WalletId,
                                     CompanyId = @CompanyId,
                                     StockName = @StockName,
                                     StockCode = @StockCode,
                                     StockUnit = @StockUnit,
                                     StockQuantity = @StockQuantity,
                                     ChargedWalletAmount = @ChargedWalletAmount,
                                     CancelReason = @CancelReason,
                                     State = @State,
                                     ModifiedAt = @ModifiedAt
                                     WHERE AggregateId = @AggregateId", new
     {
         WalletId            = processManager.WalletId,
         CompanyId           = processManager.CompanyId,
         StockName           = processManager.StockName,
         StockCode           = processManager.StockCode,
         StockUnit           = processManager.StockUnit,
         StockQuantity       = processManager.StockQuantity,
         ChargedWalletAmount = processManager.ChargedWalletAmount,
         CancelReason        = processManager.CancelReason,
         State       = processManager.State,
         ModifiedAt  = processManager.ModifiedAt,
         AggregateId = processManager.AggregateId
     }, _transaction);
 }
Ejemplo n.º 2
0
        public async Task HandleAsync(BuyOrderCreatedEvent message)
        {
            var pm = await _processManagerRepository.FindAsync(message.AggregateId);

            if (pm != null)
            {
                throw new StocqresException("Process Manager for this Order currently exist");
            }

            var orderProcessManager = new BuyOrderProcessManager(message.AggregateId);

            orderProcessManager.When(message);

            await _processManagerRepository.Save(orderProcessManager);
        }
        public async Task Save(BuyOrderProcessManager processManager)
        {
            processManager.UpdateModifiedDate();
            var pm = await FindAsync(processManager.AggregateId);

            if (pm == null)
            {
                await Add(processManager);
            }
            else
            {
                await Update(processManager);
            }

            await HandleCommands(processManager);
        }
 private async Task Add(BuyOrderProcessManager processManager)
 {
     await _connection.ExecuteAsync(
         $@"INSERT INTO Transactions.{nameof(BuyOrderProcessManager)}(Id, AggregateId, WalletId, CompanyId, StockName, StockCode, StockUnit, StockQuantity, ChargedWalletAmount, CancelReason, State, CreatedAt, ModifiedAt)
                                     VALUES(@Id, @AggregateId, @WalletId, @CompanyId, @StockName, @StockCode, @StockUnit, @StockQuantity, @ChargedWalletAmount, @CancelReason, @State, @CreatedAt, @ModifiedAt)",
         new
     {
         Id                  = Guid.NewGuid(),
         AggregateId         = processManager.AggregateId,
         WalletId            = processManager.WalletId,
         CompanyId           = processManager.CompanyId,
         StockName           = processManager.StockName,
         StockCode           = processManager.StockCode,
         StockUnit           = processManager.StockUnit,
         StockQuantity       = processManager.StockQuantity,
         ChargedWalletAmount = processManager.ChargedWalletAmount,
         CancelReason        = processManager.CancelReason,
         State               = processManager.State,
         CreatedAt           = processManager.CreatedAt,
         ModifiedAt          = processManager.ModifiedAt
     }, _transaction);
 }