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())));
        }
Пример #2
0
        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)));
        }