Esempio n. 1
0
        // GET: Poll
        public ActionResult Index()
        {
            PollViewModel model = new PollViewModel();

            try
            {
                // Busca a pesquisa de hoje
                Poll poll = PollBLL.GetPoll(DateTime.Now);

                model.PollId = poll.Id;
                model.PollStatus = poll.Status;
                model.PoolLimitTime = PollBLL.GetDatePollLimitTime(DateTime.Now);

                if (poll.Status == EPollStatus.Active)
                {
                    Vote vote = null;
                    var myId = HungryProfessionalBLL.GetOrCreateID(User.Identity.Name);

                    if (!VoteBLL.HasVoted(poll.Id, myId, out vote))
                    {
                        // Se ainda não votou busca os restaurantes disponíveis para voto
                        model.AvailableRestaurants = PollBLL.GetAvailableRestaurantsToVote(poll);
                    }
                    else if (vote != null && vote.SelectedRestaurant != null)
                    {
                        // Se já votou, exibe o restaurante selecionado
                        model.SelectedRestaurantId = vote.SelectedRestaurant.Id;
                        model.SelectedRestaurantName = vote.SelectedRestaurant.Name;
                    }
                }
                else
                {
                    // Se a pesquisa já encerrou, mostra o restaurante eleito
                    if (poll.ElectedRestaurant != null)
                        model.ElectedRestaurantName = poll.ElectedRestaurant.Name;
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }

            return View(model);
        }
Esempio n. 2
0
        public ActionResult Vote(PollViewModel model)
        {
            try
            {
                Vote vote = null;

                var myId = HungryProfessionalBLL.GetOrCreateID(User.Identity.Name);

                // Verifica se já votou antes para evitar que possa votar mais de uma vez
                if (!VoteBLL.HasVoted(model.PollId, myId, out vote))
                {
                    VoteBLL.RegisterVote(model.PollId, myId, model.SelectedRestaurantId);
                }

                var selectedRestaurant = RestaurantBLL.GetRestaurantById(model.SelectedRestaurantId);

                model.SelectedRestaurantName = selectedRestaurant?.Name;
                model.PoolLimitTime = PollBLL.GetDatePollLimitTime(DateTime.Now);
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }

            return View("Index", model);
        }