Ejemplo n.º 1
0
        public ReturnModel SubmitVote(VoteModel vote)
        {
            bool activeLimitTimeVote = Convert.ToBoolean(_configuration["LimitTime:Active"]);

            if (activeLimitTimeVote)
            {
                bool timesUp = LimitTimeVote(vote);

                if (timesUp)
                {
                    return(new ReturnModel()
                    {
                        Success = false,
                        Message = "Fora do horário de votação"
                    });
                }
            }

            if (!_userDate.Exists(vote.IdUser) || !_restaurantData.Exists(vote.IdRestaurant))
            {
                return(new ReturnModel()
                {
                    Success = false,
                    Message = "Usuário ou restaurante não encontrado"
                });
            }

            bool userValid       = _storyBusiness.CheckUser(vote.IdUser, vote.DateVote);
            bool restaurantValid = _storyBusiness.CheckRestaurant(vote.IdRestaurant, vote.DateVote);

            if (userValid && restaurantValid)
            {
                _votationData.SubmitVote(vote);

                return(new ReturnModel()
                {
                    Success = true,
                    Message = "Voto realizado com sucesso"
                });
            }

            return(new ReturnModel()
            {
                Success = false,
                Message = userValid ? "Restaurante já selecionado está semana" : "Você já votou"
            });
        }