public IHttpActionResult FilmeAleatorio([FromBody] List <Categoria> categorias) { try { Random rnd = new Random(); List <Filme> filmesFinais = new List <Filme>(); if (categorias.Count > 0) { CategoriasService service = new CategoriasService(); var listaCategoriasFilme = service.ListarPorCategoria(categorias, out string categoriasString); listaCategoriasFilme.Select(x => x.Filmes).ForEach(z => z.ForEach(x => filmesFinais.Add(x))); } else { FilmesService filmesService = new FilmesService(); filmesFinais = filmesService.Listar(); } filmesFinais = filmesFinais.Where(filme => !filme.Assistido).ToList(); if (filmesFinais.Count <= 0) { return(Ok(new { data = new Filme(), success = false, message = "Não encontramos nenhum filme com os critérios informados." })); } int indiceFilme = rnd.Next(0, filmesFinais.Count - 1); var filmeRandom = filmesFinais.ElementAt(indiceFilme); var response = new { data = filmeRandom, message = "Filme aleatório selecionado.", success = true }; return(Ok(response)); } catch (Exception ex) { return(InternalServerError(ex)); } }
public IHttpActionResult ListarPorCategoria([FromBody] List <Categoria> categorias) { try { CategoriasService service = new CategoriasService(); var listaFilmes = service.ListarPorCategoria(categorias, out string categoriasString).OrderBy(x => x.Nome).ThenByDescending(x => x.DtAdicionado).ThenByDescending(x => x.DtAdicionado).ToList(); var response = new DefaultResponse <Categoria> { data = listaFilmes, message = listaFilmes.Count > 0 ? $"Filmes das categorias: {categoriasString} encontrados." : $"Filmes das categorias: {categoriasString} não foram encontrados.", success = true }; return(Ok(response)); } catch (Exception ex) { return(InternalServerError(ex)); } }