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); }
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); }