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()); } }
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()); }
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")); } }