public virtual ActionResult AddToCart(int id, LocalisationCart cart) { var context = ModelFactory.GetUnitOfWork(); var lRepo = ModelFactory.GetRepository<ILocalisationRepository>(context); var loc = lRepo.Get(id); var item = cart.AddItem(id, loc.Name, loc.GetDetailFullUrl(Url)); return PartialView(MVC.Quotation.Views._CartItem, item); }
/// <summary> /// custom binding of localisation model : extract from session /// </summary> /// <param name="controllerContext">contains the cart data to fill model</param> /// <param name="bindingContext">to add modelerrors if needed</param> /// <returns></returns> public object BindModel(ControllerContext controllerContext, ModelBindingContext bindingContext) { var controller = controllerContext.Controller as Controller; var isLoggued = WebHelper.GetIdentityId(controller.User.Identity) != 0; LocalisationCart sessionCart = controllerContext.HttpContext.Session[_CartSessionKey] as LocalisationCart; if (sessionCart == null) { sessionCart = new LocalisationCart(); controllerContext.HttpContext.Session[_CartSessionKey] = sessionCart; } sessionCart.NeedNewAccount = !isLoggued; LocalisationCart formCart = _Binder.BindModel(controllerContext, bindingContext) as LocalisationCart; if (formCart != null) { sessionCart.CopyData(formCart); } return sessionCart; }
public virtual ActionResult CartPanel(LocalisationCart cart) { return PartialView(MVC.Quotation.Views._CartPanel, cart); }
public virtual ActionResult SendCart(LocalisationCart cart) { if (ModelState.IsValid) { try { var memberId = WebHelper.GetIdentityId(User.Identity); var context = ModelFactory.GetUnitOfWork(); var mRepo = ModelFactory.GetRepository<IMemberRepository>(context); var lRepo = ModelFactory.GetRepository<ILocalisationRepository>(context); var member = mRepo.Get(memberId); foreach (var item in cart.Items) { var loc = lRepo.Get(item.Id); var offer = loc.GetAllOffers().First(); if (offer == null) continue; var formData = new MemberQuotationFormViewModel(member, offer, cart); try { CreateQuotation(memberId, offer.Id, formData); } catch (Exception ex) { _Logger.Error("SendCart", ex); } } cart.Clear(); return PartialView(MVC.Quotation.Views._CartPanel, cart); } catch (Exception ex) { _Logger.Error("SendCart", ex); ModelState.AddModelError("", Worki.Resources.Validation.ValidationString.CheckCriterias); throw new ModelStateException(ModelState); } } throw new ModelStateException(ModelState); }
public virtual ActionResult RemoveFromCart(int id, LocalisationCart cart) { cart.RemoveItem(id); return null; }