public async Task Handle(JObject jObject, ILog log, CancellationToken cancellationToken) { try { bool orderIsValid = true; string message = null; log.Info("Consume OrderCreatedEvent"); var dataConsomed = jObject.ToObject <OrderCreatedEvent>(); //Consume data and validate the data var dataIsExist = await _customerQueries.GetCustomer(dataConsomed.CustomerId); if (dataIsExist != null) { orderIsValid = false; message = "Customer not found"; } var @event = new OrderValidatedEvent { OrderId = dataConsomed.OrderId, IsValid = orderIsValid, Messages = new List <string> { message } }; await _producer.Send(@event, "PosServices"); } catch (Exception ex) { log.Error("Error Validating order by customer", ex); throw ex; } }
public async Task <IActionResult> GetCustomer(Guid customerId) { CustomerResult customer = await _customerQueries.GetCustomer(customerId); if (customer == null) { return(new NoContentResult()); } List <AccountDetailsModel> accounts = new List <AccountDetailsModel>(); foreach (var account in customer.Accounts) { List <TransactionModel> transactions = new List <TransactionModel>(); foreach (var item in account.Transactions) { var transaction = new TransactionModel( item.Amount, item.Description, item.TransactionDate); transactions.Add(transaction); } accounts.Add(new AccountDetailsModel( account.AccountId, account.CurrentBalance, transactions)); } CustomerDetailsModel model = new CustomerDetailsModel( customer.CustomerId, customer.PersonNummer, customer.Name, accounts); return(new ObjectResult(model)); }
public async Task Handle(JObject jObject, ILog log, CancellationToken cancellationToken) { try { log.Info("Consume CustomerUpdatedEvent"); var dataConsomed = jObject.ToObject <CustomerUpdatedEvent>(); var data = await _customerQueries.GetCustomer(dataConsomed.CustomerId); if (data != null) { data = _mapper.Map <Domain.CustomerAggregate.Customer>(dataConsomed); log.Info("Update Customer"); //Consume data to Read Db _customerRepository.Update(data); await _uow.CommitAsync(); } } catch (Exception ex) { log.Error("Error Updating data customer", ex); throw ex; } }
public async Task <IActionResult> Get(Guid id) { try { var data = await _customerQueries.GetCustomer(id); return(Ok(new ApiOkResponse(data, data != null ? 1 : 0))); } catch (Exception ex) { _logger.LogCritical(ex, $"Error on Get Customer [{id}]"); return(BadRequest(new ApiBadRequestResponse(500, "Something Wrong"))); } }
public async Task Handle(JObject jObject, ILog log, CancellationToken cancellationToken) { try { log.Info("Consume CustomerDeletedEvent"); var dataConsomed = jObject.ToObject <CustomerDeletedEvent>(); var data = await _customerQueries.GetCustomer(dataConsomed.CustomerId); log.Info("Delete Customer"); //Consume data to Read Db _customerRepository.Delete(data); await _uow.CommitAsync(); } catch (Exception ex) { log.Error("Error Deleteing data customer", ex); throw ex; } }