public ActionResult PartyHireInformation(PartyHireInformationViewModel viewModel, Order order, Member member, bool isBillingDetailsTheSame = false) { if (viewModel.IsDelivery && !this.ModelState.IsValid) { return this.PartyHireInformation(order, member); } this._commandDispatcher.Dispatch(new CreatePartyCommand(order, viewModel.PartyDate.Value, member)); if (viewModel.IsDelivery) { Address deliveryAddress = this._addressProvider.SaveDeliveryAddress(member, viewModel, viewModel.PhoneNumber); this._commandDispatcher.Dispatch(new AddDeliveryAddressCommand(order, deliveryAddress, true, true)); this._commandDispatcher.Dispatch(new AddPartyAddressCommand(order, deliveryAddress, member)); if (isBillingDetailsTheSame) { Address billingAddress = this._addressProvider.SaveBillingAddress(member, viewModel, null); this._commandDispatcher.Dispatch<AddBillingAddressCommand>(new AddBillingAddressCommand(order, billingAddress)); } } else { this._commandDispatcher.Dispatch(new RemoveDeliveryAddressCommand(order)); } return this.RedirectToRoute(Routes.Checkout.BillingInformation); }
public ActionResult PartyHireInformation(Order order, Member member) { if (order.ContainsHireProducts() || order.ContainsTheme()) { Party party = this._queryDispatcher.Dispatch<Party, GetPartyByOrderGuidQuery>(new GetPartyByOrderGuidQuery(order.Guid)); PartyHireInformationViewModel viewModel = new PartyHireInformationViewModel(null, order, party); if (order.DeliveryAddressId.HasValue) { Address address = this._queryDispatcher.Dispatch<Address, GetAddressByGuidQuery>(new GetAddressByGuidQuery(order.DeliveryAddressId.Value)); viewModel = new PartyHireInformationViewModel(address, order, party); } else if (member.DeliveryAddresses.Any()) { Address address = member.DeliveryAddresses.OrderByDescending(o => o.DateCreated).First(); viewModel = new PartyHireInformationViewModel(address, order, party); } return this.View("PartyHireInformation", viewModel); } return this.RedirectToRoute(Routes.Checkout.BillingInformation); }