Beispiel #1
0
        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));
        }
Beispiel #2
0
        /// <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);
        }