public override async Task <ActionResult <List <PaymentMethodDto> > > Handle(ListPaymentMethodsCommand command) { var paymentMethods = await _listPaymentMethodsQuery.Query(command); if (paymentMethods == null) { return(Error()); } var phrases = await _listPhrasesByNameQuery.Query(new ListPhrasesByNameCommand(paymentMethods.Select(o => o.Code).Concat(paymentMethods.SelectMany(o => o.PaymentMethodTypes.Select(i => i.Code))))); var paymentMethodsDto = new List <PaymentMethodDto>(); foreach (var paymentMethod in paymentMethods) { var paymentMethodDto = new PaymentMethodDto() { Text = phrases.FirstOrDefault(o => o.Code == paymentMethod.Code)?.Value ?? paymentMethod.Code, Value = paymentMethod.Code }; foreach (var paymentMethodType in paymentMethod.PaymentMethodTypes) { var paymentMethodTypeDto = new PaymentMethodTypeDto() { Text = phrases.FirstOrDefault(o => o.Code == paymentMethodType.Code)?.Value ?? paymentMethodType.Code, Value = paymentMethodType.Code }; paymentMethodDto.PaymentMethodTypes.Add(paymentMethodTypeDto); } paymentMethodsDto.Add(paymentMethodDto); } return(Ok(paymentMethodsDto)); }
private Command GenerateCommand(int optionId) { Command cmd = null; switch (optionId) { case 1: cmd = new ListPaymentMethodsCommand(this.context); break; case 2: cmd = new PayBillsCommand(this.context); break; case 3: Environment.Exit(0); break; default: return(null); } return(cmd); }
public override async Task <List <PaymentMethod> > Query(ListPaymentMethodsCommand command) { var query = DbContext.PaymentMethods.Include(o => o.PaymentMethodTypes); return(await query.ToListAsync()); }