public async Task <bool> AddAsync(PricingPaymentMethod obj) { var sql = @"INSERT INTO PaymentMethods (Id, Description, MaxInstallments) VALUES (?Id, ?Description, ?MaxInstallments)"; var result = await base.connection.ExecuteScalarAsync <int>( sql, param : new { Id = obj.Id, Description = obj.Description, MaxInstallments = obj.MaxInstallments }, transaction : base.transaction ); return(result > 0); }
public async Task <Unit> Handle(AddPaymentMethodCommand request, CancellationToken cancellationToken) { var paymentMethod = new PricingPaymentMethod(request.Description, request.MaxInstallments); if (!paymentMethod.IsValid()) { return(await Unit.Task); } var taxesEntity = new List <PricingPaymentMethodTax>(); bool taxesAreValid = true; foreach (var item in request.TaxesCommands) { var tax = new PricingPaymentMethodTax(item.Description, item.TaxValue, paymentMethod.Id); if (!tax.IsValid()) { taxesAreValid = false; } else { taxesEntity.Add(tax); } } if (!taxesAreValid) { return(await Unit.Task); } await _unitOfWork.BeginTransactionAsync(cancellationToken); await _unitOfWork.PaymentMethodPersistentRepository.AddAsync(paymentMethod); await _unitOfWork.PaymentMethodPersistentRepository.AddTaxesAsync(taxesEntity); var result = await _unitOfWork.CommitAsync(); if (!result) { await _domainNotificationHandler.Handle(new DomainNotification("Persistence", "Ocorreu um erro ao gravar os dados."), cancellationToken); } return(await Unit.Task); }