Example #1
0
        //[Authorize(Roles = "Admin, User")]
        public RedirectToRouteResult Submit()
        {
            if (!userProvider.GetUser(this).Identity.IsAuthenticated)
            {
                return(RedirectToAction("Register", "Account", new { returnUrl = Url.Action("Submit") }));
            }

            if (WeeklyVoted(userProvider.GetUser(this).Identity.GetUserId()))
            {
                return(RedirectToAction("List"));
            }

            var             userId = userProvider.GetUser(this).Identity.GetUserId();
            ApplicationUser user   = usersRepository.Items.First(x => x.Id == userId);

            foreach (var characterId in cartProvider.GetCart(this).Votes)
            {
                var vote = new Vote {
                    User = user, Week = Week
                };
                votesRepository.Add(vote);
                votesRepository.SaveChanges();

                var character = charactersRepository.Items.First(x => x.Id == characterId);
                var voteItem  = new VoteItem
                {
                    Position = 1,
                    Vote     = vote,
                    Hero     = character
                };
                voteItemsRepository.Add(voteItem);
            }
            cartProvider.SetCart(this, new Cart(new HashSet <int>(), cartProvider.GetCart(this).Points));
            return(RedirectToAction("List"));
        }
        public RedirectResult SubmitVotes(string returnUrl)
        {
            var weekId = weekProvider.GetWeek();
            var userId = userProvider.GetId(this);
            var vote   = new Vote()
            {
                UserID = userId, WeekId = weekId
            };

            if (voteRepository.Contains(weekId, userId))
            {
                return(new RedirectResult(returnUrl));
            }

            var cart = GetCart();

            voteRepository.Add(vote, cart.CharactersIds);
            cartProvider.SetCart(this, new Cart());
            return(new RedirectResult(returnUrl));
        }