public OnlineProductShippingEditModel SaveSelectedShippingOption(OnlineProductShippingEditModel model) { var onlineRequestValidationModel = _tempcartService.ValidateOnlineRequest(model.Guid); model.RequestValidationModel = onlineRequestValidationModel; if (onlineRequestValidationModel.RequestStatus != OnlineRequestStatus.Valid) { return(model); } var tempCart = onlineRequestValidationModel.TempCart; tempCart.ProductId = model.SelectedProductIds != null?string.Join(",", model.SelectedProductIds) : string.Empty; tempCart.ShippingId = model.SelectedShippingOptionId < 0 ? null : (long?)model.SelectedShippingOptionId; _tempcartService.SaveTempCart(tempCart); return(model); }
public OnlineProductShippingEditModel GetShippingOption(TempCart tempCart) { var model = new OnlineProductShippingEditModel(); if (tempCart.EventId != null) { var theEvent = _eventRepository.GetById(tempCart.EventId.Value); var shippingOptions = _shippingOptionRepository.GetAllShippingOptionsForBuyingProcess(); var shippingOptionsToBind = new List <ShippingOption>(); if (theEvent.EventType == EventType.Retail) { var hospitalPartnerId = _hospitalPartnerRepository.GetHospitalPartnerIdForEvent(tempCart.EventId.Value); if (hospitalPartnerId > 0) { var hospitalPartner = _hospitalPartnerRepository.GetHospitalPartnerforaVendor(hospitalPartnerId); if (hospitalPartner.ShowOnlineShipping) { var onlineShippingOption = _shippingOptionRepository.GetOnlineShippingOption(); shippingOptionsToBind.Add(onlineShippingOption); } model.IsHospitalPartnerEvent = true; shippingOptions = _shippingOptionRepository.GetAllShippingOptionForHospitalPartner(hospitalPartnerId); if (shippingOptions != null && shippingOptions.Count > 0) { shippingOptionsToBind.AddRange(shippingOptions); if (shippingOptions.Count > 1 && shippingOptions.Any(so => so.Price > 0)) { model.IsHospitalPartnerEvent = false; } } } else { var onlineShippingOption = _shippingOptionRepository.GetOnlineShippingOption(); shippingOptionsToBind.Add(onlineShippingOption); if (shippingOptions != null && shippingOptions.Count > 0) { shippingOptionsToBind.AddRange(shippingOptions); } } model.EventType = EventType.Retail; } else if (theEvent.EventType == EventType.Corporate) { var onlineShippingOption = _shippingOptionRepository.GetOnlineShippingOption(); shippingOptionsToBind.Add(onlineShippingOption); shippingOptions = _shippingOptionRepository.GetAllShippingOptionForCorporate(theEvent.AccountId.HasValue ? theEvent.AccountId.Value : 0); if (shippingOptions != null && shippingOptions.Count > 0) { shippingOptionsToBind.AddRange(shippingOptions); } else { tempCart.ShippingId = onlineShippingOption.Id; } model.EventType = EventType.Corporate; if (shippingOptionsToBind.Any(so => so.Id > 0)) { shippingOptionsToBind.RemoveAll(so => so.Id == 0); } } model.AllShippingOptions = Mapper.Map <IEnumerable <ShippingOption>, IEnumerable <ShippingOptionOrderItemViewModel> >(shippingOptionsToBind); } return(model); }