Beispiel #1
0
        public async Task <IActionResult> Update(int id, RaffleOrderUpdateViewModel model)
        {
            if (ModelState.IsValid)
            {
                var command = new UpdateOrderTicketCommand
                {
                    OrderId      = id,
                    TicketNumber = model.TicketNumber,
                    DonationDate = model.DonationDate,
                    DonationNote = model.DonationNote ?? string.Empty
                };
                await mediator.Publish(command);

                return(RedirectToAction("Index", "AdminRaffleOrders"));
            }

            var items    = raffleItemRepository.GetAll();
            var order    = (await mediator.Send(new GetRaffleOrderQuery {
                OrderId = id
            }));
            var newModel = MapOrderModel(id, items, order);

            newModel.TicketNumber = model.TicketNumber;
            return(View("RaffleOrderUpdate", newModel));
        }
Beispiel #2
0
        private static RaffleOrderUpdateViewModel MapOrderModel(
            int id,
            IReadOnlyList <RaffleItem> items,
            RaffleOrder order)
        {
            var model = new RaffleOrderUpdateViewModel
            {
                Id                    = id,
                TicketNumber          = order.TicketNumber,
                CompleteDate          = order.CompletedDate.Value.ToUniversalTime(),
                Confirmed21           = order.Confirmed21,
                UpdateDate            = order.UpdatedDate.HasValue ? order.UpdatedDate.Value.ToUniversalTime() : order.UpdatedDate,
                DonationDate          = order.DonationDate,
                DonationNote          = order.DonationNote,
                TotalPrice            = order.TotalPrice,
                TotalTickets          = order.TotalTickets,
                TotalTicketsFromSheet = order.TotalTicketsFromSheet,
                TotalTicketsOne       = order.TotalOneTickets,
                TotalTicketsTwo       = order.TotalTwoTickets,
                HowDidYouHear         = order.HowDidYouHear,
                HOwDidYouHearOther    = order.HowDidYouHearOther
            };

            model.Customer = new RaffleOrderUpdateCustomer
            {
                FirstName            = order.Customer.FirstName,
                LastName             = order.Customer.LastName,
                Email                = order.Customer.Email,
                PhoneNumber          = order.Customer.PhoneNumber,
                AddressLine1         = order.Customer.AddressLine1,
                AddressLine2         = order.Customer.AddressLine2,
                City                 = order.Customer.City,
                State                = order.Customer.State,
                Zip                  = order.Customer.Zip,
                IsInternational      = order.Customer.IsInternational,
                InternationalAddress = order.Customer.InternationalAddress
            };
            model.Lines = order.Lines.Select(x =>
                                             new RaffleOrderUpdateLineModel
            {
                RaffleItemId = x.RaffleItemId,
                Amount       = x.Count,
                Price        = x.Price,
                Name         = x.Name,
                ImageUrls    = items.First(i => i.Id == x.RaffleItemId).ImageUrls
            }).ToList();
            return(model);
        }