public ActionResult Manage(int id)
        {
            if (!repository.Characters.Any(c => c.Id == id))
            {
                ViewBag.Error = "Такого персонажа не существует!";
                return(View(GetChoosenChsViewModels()));
            }
            var price = repository.Characters.First(c => c.Id == id).Price;
            var cart  = cartProvider.GetCart(this);

            if (cart.CharacterIds.Contains(id))
            {
                ViewBag.Error = "Вы уже проголосовали за этого участника!";
                return(View(GetChoosenChsViewModels()));
            }
            if (cart.Points < price)
            {
                ViewBag.Error = "У вас недостаточно очков!";
                return(View(GetChoosenChsViewModels()));
            }
            cart.Points -= price;
            cart.CharacterIds.Add(id);
            //return View(GetChoosenChsViewModels());
            return(PartialView("CartInfo", cart));
        }
        /// <summary>
        /// Get the current cart and domain categories.
        /// </summary>
        public JsonResult GetCart()
        {
            var cart = cartProvider.GetCart();

            return(JsonEnvelope.Success(new
            {
                Cart = new CartModel(cart),
                DomainCategories = domainsProvider.GetDomainCategories()
            }));
        }
Beispiel #3
0
        public ActionResult Index()
        {
            // Make sure cart is properly calculated.
            var cart = cartProvider.GetCart();

            cartPricingService.CalculatePricing(cart);

            // If VAT number was submitted, indicate a VAT check should be made
            ViewBag.CheckVAT = !String.IsNullOrEmpty(vatDataProvider.VatNumber);

            var model = DependencyResolver.Current.GetService <CheckoutViewModel>();

            return(View(model));
        }
Beispiel #4
0
        public ViewResult Index(int page = 1, FilterBy filter = FilterBy.NoFilter, string substring = null)
        {
            ViewBag.substring = substring;
            ViewBag.filter    = filter;
            var characters = repository.Characters
                             .Where(FilterModels.Filters[filter])
                             .ToArray();

            if (!string.IsNullOrEmpty(substring))
            {
                characters = characters.Where(c => c.Name.Contains(substring)).ToArray();
            }
            var charterersOnPage = characters
                                   .Skip((page - 1) * PageSize)
                                   .Take(PageSize)
                                   .Select(c => new CharacterViewModel {
                Character = c,
                VoteType  = CartHelpers.GetVoteTypeForCharacter(c, cartProvider.GetCart(this))
            })
                                   .ToArray();
            CharactersListViewModel model = new CharactersListViewModel
            {
                Characters = charterersOnPage,
                PagingInfo = new PagingInfo
                {
                    CurrentPage  = page,
                    ItemsPerPage = PageSize,
                    TotalItems   = characters.Length
                }
            };

            return(View(model));
        }
        private void ValidateCart()
        {
            var cart = cartProvider.GetCart();

            if (cart.IsEmpty())
            {
                this.validationErrors.Add(resourceProvider.GetResource("OrderFlowValidation_CartIsEmpty"));
            }
        }
        private Cart GetCart()
        {
            Cart cart = cartProvider.GetCart(this);

            if (cart == null)
            {
                cart = new Cart();
                cartProvider.SetCart(this, cart);
            }
            return(cart);
        }
        public ActionResult Index()
        {
            // Make sure cart is properly calculated.
            var cart = cartProvider.GetCart();

            cartPricingService.CalculatePricing(cart);

            // If VAT number was submitted, indicate a VAT check should be made
            ViewBag.CheckVAT = !string.IsNullOrEmpty(vatDataProvider.VatNumber);
            if (RecaptchaHelper.IsRecaptchaEnabled())
            {
                ViewBag.RecaptchaEnabled = true;
                ViewBag.RecaptchaSiteKey = RecaptchaHelper.GetSiteKey();
            }

            var model = DependencyResolver.Current.GetService <CheckoutViewModel>();

            ViewData["formHasErrors"] = false;

            return(View(model));
        }
        public ActionResult Index(SelectSingleModel model)
        {
            if (ModelState.IsValid)
            {
                var cart = cartProvider.GetCart();

                try
                {
                    cart.AddItem(model.CartItem);
                }
                catch (Exception)
                {
                    // Broadly catch and ignore exceptions to avoid interuption to user from faulty external forms.
                }

                if (model.CartCustomAttributes != null)
                {
                    foreach (var attr in model.CartCustomAttributes)
                    {
                        cart.SetCustomAttribute(attr.Name, attr.Value);
                    }
                }

                if (!string.IsNullOrEmpty(model.Campaign))
                {
                    cart.SetCampaignCode(model.Campaign);
                }

                if (!string.IsNullOrEmpty(model.Next))
                {
                    return(Redirect(model.Next));
                }
            }

            return(RedirectToRoute("OrderFlowStart"));
        }
        /// <summary>
        /// Get terms of service for products in current cart from resource provider.
        /// Terms of service name should have key "{id}_Name", and description should have key "{id}_Description".
        /// </summary>
        /// <returns>The terms of service applicable to products in current cart.</returns>
        public IEnumerable <TermsOfService> GetTermsOfService()
        {
            var termsOfService = new HashSet <TermsOfService>();
            var cart           = cartProvider.GetCart();
            var articleNumbers = new HashSet <string>(cart.CartItems.Select(c => c.ArticleNumber));
            var isReseller     = resellerProvider.GetReseller().IsSubReseller;
            var tosResources   = new HashSet <string>();

            foreach (var articleNumber in articleNumbers)
            {
                var product = productProvider.GetProduct(articleNumber);

                if (product != null)
                {
                    string tosNoSplit = null;

                    if (isReseller && product.CustomAttributes.Any(ca => ca.Name == "resellertos"))
                    {
                        tosNoSplit = product.CustomAttributes.First(ca => ca.Name == "resellertos").Value;
                    }
                    else if (product.CustomAttributes.Any(ca => ca.Name == "tos"))
                    {
                        tosNoSplit = product.CustomAttributes.First(ca => ca.Name == "tos").Value;
                    }

                    if (!string.IsNullOrEmpty(tosNoSplit))
                    {
                        tosResources.UnionWith(tosNoSplit.Split('|'));
                    }
                }
            }

            foreach (var resource in tosResources)
            {
                termsOfService.Add(new TermsOfService
                {
                    Id    = resource,
                    Name  = resourceProvider.GetResource(resource + "_Name"),
                    Terms = resourceProvider.GetResource(resource + "_Terms"),
                    Link  = resourceProvider.GetResource(resource + "_Link")
                });
            }

            return(termsOfService);
        }
Beispiel #10
0
 private ICart <UserOrder> GetCart()
 {
     return(_provider.GetCart());
 }
Beispiel #11
0
        public ViewResult List(int?page)
        {
            page           = page ?? 1;
            ViewBag.Action = "List";
            ViewBag.Points = cartProvider.GetCart(this).Points;
            var userId = userProvider.GetUser(this).Identity.GetUserId();

            return(View(charactersRepository.Items.ToEnumerable().Select(x => new CharacterViewModel
            {
                CanVote = !WeeklyVoted(userId) && cartProvider.GetCart(this).Points >= x.Cost,
                IsVoted = cartProvider.GetCart(this).Votes.Contains(x.Id),
                WeeklyVoted = WeeklyVoted(userId),
                Character = x
            }).ToPagedList(page.Value, PageSize)));
        }