Exemplo n.º 1
0
        /// <summary>
        /// Compara se a semana da data passada por parâmtro é a mesma semana atual
        /// </summary>
        private bool CompareWeekWithCurrent(DateTime data, VotingDTO votacao)
        {
            CultureInfo cult = CultureInfo.CurrentCulture;

            int semanaVotacao      = cult.Calendar.GetWeekOfYear(data.Date, CalendarWeekRule.FirstFullWeek, DayOfWeek.Sunday);
            int semanaVotacaoAtual = cult.Calendar.GetWeekOfYear(votacao.DateVoting, CalendarWeekRule.FirstFullWeek, DayOfWeek.Sunday);

            return(semanaVotacao == semanaVotacaoAtual);
        }
Exemplo n.º 2
0
        private void VerifyChosenRestaurantOfWeek(VotingDTO voting)
        {
            bool weekVote = _winnersOfWeek
                            .Any(x => x.Restaurant.Id == voting.Restaurant.Id && CompareWeekWithCurrent(x.DateVoting, voting));

            if (weekVote)
            {
                throw new RestaurantOfTheWeekException(Resource.MsgRestauranteEscolhidoSemana);
            }
        }
Exemplo n.º 3
0
        private void VerifyVotingFinished(VotingDTO voting)
        {
            bool finishedDate =
                _winnersOfWeek.Any(x => x.DateVoting.ToString(Resource.DataFormat) == voting.DateVoting.ToString(Resource.DataFormat));

            if (finishedDate)
            {
                throw new VotingClosedException(Resource.MsgVotacaoEncerrada);
            }
        }
Exemplo n.º 4
0
        public void FinishingVoting()
        {
            VotingDTO winner = GetRestaurantDayWinner();

            //Define Restaurante Vendedor
            if (!_winnersOfWeek.Contains(winner))
            {
                winner.IsFinished = true;
                _winnersOfWeek.Add(winner);
            }
        }
Exemplo n.º 5
0
        public void Vote(VotingDTO voting)
        {
            voting.Staff      = _staffService.GetByID(voting.Staff.Id);
            voting.Restaurant = _restaurantService.GetByID(voting.Restaurant.Id);

            VerifyVotingFinished(voting);
            RestartVotingLastWeek(voting);
            VerifyChosenRestaurantOfWeek(voting);
            VerifyIfEmployeeVoted(voting);

            _votingService.Save(voting);
        }
Exemplo n.º 6
0
        private void VerifyIfEmployeeVoted(VotingDTO votacao)
        {
            bool voted = _votingService.GetAll()
                         .Any(x => x.Staff.Id == votacao.Staff.Id && x.DateVoting.Date == votacao.DateVoting.Date);

            if (voted)
            {
                string validMsg = string.Format(Resource.MsgJaVotou, votacao.Staff.StaffName);

                throw new AlreadyVotedException(validMsg);
            }
        }
Exemplo n.º 7
0
        public void RestartVotingLastWeek(VotingDTO voting = null)
        {
            if (voting == null)
            {
                _winnersOfWeek.Clear();
            }

            bool sameWeek = _winnersOfWeek.Any(x => CompareWeekWithCurrent(x.DateVoting, voting));

            if (!sameWeek)
            {
                _winnersOfWeek.Clear();
            }
        }
        public ActionResult Votar(VotingDTO votacao)
        {
            try
            {
                _votacao.Vote(votacao);
            }
            catch (System.Exception e)
            {
                TempData["Error"] = e.Message;
            }

            TempData["ListaVotacao"]   = _votacao.ListVoting();
            TempData["Parcial"]        = _votacao.GetPartial();
            TempData["VencedorSemana"] = _votacao.ListWinnersOfWeek();
            TempData["Date"]           = votacao.DateVoting.ToString("dd/MM/yyyy");

            return(Redirect("/"));
        }
 public void Delete(VotingDTO voting)
 {
     _repository.Delete(voting);
 }
 public void Save(VotingDTO voting)
 {
     _repository.Save(voting);
 }