Exemplo n.º 1
0
        internal ListaVotoView ConsultaVotos(string id)
        {
            Usuarios.FirstOrDefault(p => p.Id.ToString() == id)
            .ExcecaoSeNull("Este gamelão não foi encontrado.");

            var tempoVotacao = string.Empty;

            if (_inicioVotacao.HasValue)
            {
                var calc = _inicioVotacao.Value.AddMinutes(Consts.Consts.TempoVotacao) - DateTime.Now;
                if (calc.TotalSeconds > 0)
                {
                    tempoVotacao = "Tempo para votar " + Convert.ToDateTime(calc.ToString()).ToString("HH:mm:ss");
                }
                else
                {
                    calc         = _inicioVotacao.Value.AddMinutes(Consts.Consts.TempoSessao) - DateTime.Now;
                    tempoVotacao = calc.TotalSeconds > 0 ? "Tempo para proxima sessão " + Convert.ToDateTime(calc.ToString()).ToString("HH:mm:ss")
                                                         : "Pode iniciar uma nova votação!";
                }
            }

            return(new ListaVotoView
            {
                VotosSim = Votos.Count(p => p.TipoVoto == EnumVoto.Sim),
                VotosNao = Votos.Count(p => p.TipoVoto == EnumVoto.Nao),
                VotosTantoFaz = Votos.Count(p => p.TipoVoto == EnumVoto.TantoFaz),
                Votos = VotoView.Novo(Votos),
                Pergunta = _pergunta,
                NomeDoSujeitoQueIniciouSessao = _nomeDoSujeitoQueIniciouSessao,
                InicioVotacao = _inicioVotacao,
                TempoVotacao = tempoVotacao,
                VotacaoEmAndamento = _inicioVotacao.HasValue && DateTime.Now < _inicioVotacao.Value.AddMinutes(Consts.Consts.TempoVotacao),
                SessaoEmAndamento = _inicioVotacao.HasValue,
                Id = _guid.ToString()
            });
        }
Exemplo n.º 2
0
        public async Task <IActionResult> VotarComentario([FromHeader] string tokenAutor, [FromBody] VotoView Voto)
        {
            var Core = new ComentarioCore(_mapper).VotarComentario(tokenAutor, Voto);

            return(Core.Status ? Ok(Core) : (IActionResult)BadRequest(Core));
        }
Exemplo n.º 3
0
        public Retorno VotarComentario(string tokenAutor, VotoView voto)
        {
            var votosPossiveis = new List <double> {
                0.5, 1, 1.5, 2.0, 2.5, 3.0, 3.5, 4.0, 4.5, 5.0
            };

            if (!Guid.TryParse(tokenAutor, out Guid token) || !_arm.Usuarios.Any(e => e.Id == token))
            {
                return new Retorno {
                           Status = false, Resultado = new List <string> {
                               "Dádos inválidos"
                           }
                }
            }
            ;


            if (_arm.Comentarios.Any(p => p.Id == voto.ComentarioId))
            {
                return new Retorno {
                           Status = false, Resultado = new List <string> {
                               "Comentario nao existe"
                           }
                }
            }
            ;

            var VotoMap = _mapper.Map <VotoView, Voto>(voto);

            var votosDoComentario = _arm.Votos.Where(c => c.ComentarioId == VotoMap.ComentarioId).ToList();

            if (votosDoComentario.Any(c => c.UsuarioId == token))
            {
                return new Retorno {
                           Status = false, Resultado = new List <string> {
                               "Não é possivel votar duas vezes no mesmo comentario!"
                           }
                }
            }
            ;

            VotoMap.UsuarioId = token;

            if (!Double.TryParse(voto.Nota, out double notaVot) || !votosPossiveis.Contains(notaVot))
            {
                return new Retorno {
                           Status = false, Resultado = new List <string> {
                               "Voto inváldo"
                           }
                }
            }
            ;

            _arm.Votos.Add(VotoMap);

            Arquivo.Salvar(_arm);

            return(new Retorno {
                Status = true, Resultado = new List <string> {
                    "Voto computado com sucesso!"
                }
            });
        }