Exemplo n.º 1
0
        public async Task <IActionResult> IniciarEdicao(Edicao edicao)
        {
            var edicoes = await contexto.Edicoes.ToListAsync();


            var possuiEdicaoAberta = edicoes.Any(x => x.Status == StatusDaEdicao.Aberta);

            if (possuiEdicaoAberta)
            {
                return(BadRequest("Já existe uma edição aberta!"));
            }

            var ultimaEdicao = edicoes.Count() > 0 ? edicoes.Max(x => x.Numero) : 0;

            edicao.DefinirNumeroDaEdicao(ultimaEdicao);

            contexto.Add(edicao);
            await contexto.SaveChangesAsync();

            if (edicao == null)
            {
                return(BadRequest());
            }
            else
            {
                return(Ok());
            }
        }
Exemplo n.º 2
0
        public async Task <IActionResult> SugerirCarta(CartaDto cartaDto)
        {
            var carta = new Carta(cartaDto.Nome, cartaDto.Descricao, Enum.Parse <TipoDeCarta>(cartaDto.Tipo), cartaDto.Pontuacao);

            contexto.Add(carta);
            await contexto.SaveChangesAsync();

            return(Ok());
        }
Exemplo n.º 3
0
        public async Task <IActionResult> Votar(VotacaoDeCartaDto votacaoDeCartaDto)
        {
            var votacoes = await contexto.VotacoesDeCartas
                           .Include(x => x.Carta)
                           .ToListAsync();

            var votacao = new VotacaoDeCarta(votacaoDeCartaDto.JogadorId, votacaoDeCartaDto.CartaId);

            var jogadorPodeVotar = votacao.VerificarSeJogadorPodeVotar(votacoes, votacaoDeCartaDto.JogadorId, votacaoDeCartaDto.CartaId);

            if (jogadorPodeVotar)
            {
                contexto.Add(votacao);
                await contexto.SaveChangesAsync();

                return(Ok());
            }
            else
            {
                return(BadRequest("VocÊ já realizou seus votos"));
            }
        }