// 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); }
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); }