public async Task <CommandResult <CommandEmptyResult> > Handle(CashOnDeliveryOrderCommand request, CancellationToken cancellationToken) { var order = _orderRepository.QueryAllIncluding(o => o.Items, o => o.DeliveryAddress, o => o.PickUpAddress, o => o.File).FirstOrDefault(a => a.Id == request.OrderId); if (order == null) { return(await Task.FromResult(CommandResult <CommandEmptyResult> .Fail("Fail to add cash on delivery paiment method order - order does not exist."))); } order.PaymentMethod = "Plaćanje pouzećem"; _unitOfWork.SaveChanges(); var sendGrid = new SendGridService(order, _configuration); var success = await sendGrid.SendMailAsync(); if (order.File != null) { order.File.Name = null; order.File.FileInBytes = null; } _unitOfWork.SaveChanges(); if (!success) { return(await Task.FromResult(CommandResult <CommandEmptyResult> .Fail(new CommandEmptyResult()))); } return(await Task.FromResult(CommandResult <CommandEmptyResult> .Success(new CommandEmptyResult()))); }
public async Task <CommandResult <CommandEmptyResult> > Handle(ConfirmOrderCommand request, CancellationToken cancellationToken) { var order = _orderRepository.QueryAllIncluding(o => o.Items, o => o.DeliveryAddress, o => o.PickUpAddress, o => o.File).FirstOrDefault(a => a.Id == request.OrderId); if (order == null) { return(await Task.FromResult(CommandResult <CommandEmptyResult> .Fail("Fail to add bank reference to order - order does not exist."))); } var bankReference = $"{request.MerchantId};{request.TerminalId};{request.PurchaseTime};{request.OrderId};{request.Currency};{request.TotalAmount};"; if (bankReference == null || bankReference == "") { return(await Task.FromResult(CommandResult <CommandEmptyResult> .Fail("Cannot confirm without bank reference."))); } order.BankReferenceId = bankReference; order.Signature = request.Signature; order.Email = request.Email; order.PaymentMethod = "Plaćeno karticom"; _unitOfWork.SaveChanges(); var sendGrid = new SendGridService(order, _configuration); var success = await sendGrid.SendMailAsync(); order.File.Name = null; order.File.FileInBytes = null; _unitOfWork.SaveChanges(); if (!success) { return(await Task.FromResult(CommandResult <CommandEmptyResult> .Fail(new CommandEmptyResult()))); } return(await Task.FromResult(CommandResult <CommandEmptyResult> .Success(null))); }