public JsonResult GetShippingOptionForEvent(long eventId) { var hospitalPartnerId = _hospitalPartnerRepository.GetHospitalPartnerIdForEvent(eventId); var shippingOptionViewModel = new ShippingOptionViewModel { IsHospitalPartnerEvent = false }; if (hospitalPartnerId > 0) { shippingOptionViewModel = new ShippingOptionViewModel { IsHospitalPartnerEvent = true }; var shippingOptionsToBind = new List <ShippingOption>(); var shippingOptions = _shippingOptionRepository.GetAllShippingOptionForHospitalPartner(hospitalPartnerId); if (shippingOptions != null && shippingOptions.Count > 0) { shippingOptionsToBind.AddRange(shippingOptions); shippingOptionViewModel.AllShippingOptions = Mapper.Map <IEnumerable <ShippingOption>, IEnumerable <ShippingOptionOrderItemViewModel> >(shippingOptionsToBind); } } return(Json(shippingOptionViewModel, JsonRequestBehavior.AllowGet)); }
/// <summary> /// Creates view model for checkout delivery step. /// </summary> /// <param name="customer">Filled customer details</param> /// <param name="billingAddress">Filled billing address</param> /// <param name="shippingOption">Selected shipping option</param> public DeliveryDetailsViewModel PrepareDeliveryDetailsViewModel(CustomerViewModel customer = null, BillingAddressViewModel billingAddress = null, ShippingOptionViewModel shippingOption = null) { var cart = mShoppingService.GetCurrentShoppingCart(); var countries = CreateCountryList(); var shippingOptions = CreateShippingOptionList(); customer = customer ?? new CustomerViewModel(cart.Customer); var addresses = (cart.Customer != null) ? mAddressRepository.GetByCustomerId(cart.Customer.CustomerID) : Enumerable.Empty <AddressInfo>(); var billingAddresses = new SelectList(addresses, nameof(AddressInfo.AddressID), nameof(AddressInfo.AddressName)); billingAddress = billingAddress ?? new BillingAddressViewModel(mShoppingService.GetBillingAddress(), countries, mCountryRepository, billingAddresses); shippingOption = shippingOption ?? new ShippingOptionViewModel(cart.ShippingOption, shippingOptions, cart.IsShippingNeeded); billingAddress.BillingAddressCountryStateSelector.Countries = billingAddress.BillingAddressCountryStateSelector.Countries ?? countries; billingAddress.BillingAddressSelector = billingAddress.BillingAddressSelector ?? new AddressSelectorViewModel { Addresses = billingAddresses }; shippingOption.ShippingOptions = shippingOptions; var viewModel = new DeliveryDetailsViewModel { Customer = customer, BillingAddress = billingAddress, ShippingOption = shippingOption }; return(viewModel); }