public async Task <IActionResult> Get(CancellationToken ct) { var retorno = await _copaFilmeBase.GetFilmesAsync(ct); var map = _mapper.Map <IEnumerable <FilmeViewModel> >(retorno); return(Ok(map.OrderBy(x => x.titulo))); }
public async Task <KeyValuePair <FilmesResponse, FilmesResponse> > GetVencedorCopaFilme(string[] idsFilmes, CancellationToken ct) { if (idsFilmes.Length % 2 != 0) { throw new FormatException(); } var retorno = await CopaFilmeBase.GetFilmesAsync(ct); // Ordenar os filmes alfabeticamente var selecao = retorno.Where(x => idsFilmes.Contains(x.id)) .OrderBy(x => x.titulo).ToList(); // Fazer com que os filmes disputem em eliminatórias da seguinte forma: o filme na primeira // posição disputará contra o da última posição, o segundo com o penúltimo var selecaoPrincipal = selecao.Select((x, i) => new { elemt = x, index = i }) .Take((int)idsFilmes.Length / 2) .Select(x => new KeyValuePair <FilmesResponse, FilmesResponse>(x.elemt, selecao[(idsFilmes.Length - 1) - x.index])) .ToList(); // Fase de Eliminatórias return(CalcularVencedor(selecaoPrincipal)); }