コード例 #1
0
        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);
        }
コード例 #2
0
        /// <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;
        }
コード例 #3
0
 public virtual ActionResult CartPanel(LocalisationCart cart)
 {
     return PartialView(MVC.Quotation.Views._CartPanel, cart);
 }
コード例 #4
0
        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);
        }
コード例 #5
0
 public virtual ActionResult RemoveFromCart(int id, LocalisationCart cart)
 {
     cart.RemoveItem(id);
     return null;
 }