Esempio n. 1
0
        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));
            }
        }
Esempio n. 2
0
        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));
            }
        }