Пример #1
0
        public PagedResponse <ActorDto> Execute(ActorSearch search)
        {
            var query = context.Actors
                        .AsQueryable();

            if (!string.IsNullOrEmpty(search.FirstName) || !string.IsNullOrWhiteSpace(search.FirstName))
            {
                query = query.Where(x => x.FirstName.ToLower().Contains(search.FirstName.ToLower()));
            }

            if (!string.IsNullOrEmpty(search.LastName) || !string.IsNullOrWhiteSpace(search.LastName))
            {
                query = query.Where(x => x.LastName.ToLower().Contains(search.LastName.ToLower()));
            }


            var skipCount = search.PerPage * (search.Page - 1);

            var reponse = new PagedResponse <ActorDto>
            {
                CurrentPage  = search.Page,
                ItemsPerPage = search.PerPage,
                TotalCount   = query.Count(),
                Items        = query.Skip(skipCount).Take(search.PerPage).Select(x => new ActorDto
                {
                    FirstName = x.FirstName,
                    LastName  = x.LastName
                }).ToList()
            };

            return(reponse);
        }
Пример #2
0
        public PagedResponse <ActorDto> Execute(ActorSearch search)
        {
            var query = _context.Actors.Include(x => x.ActorMovies).ThenInclude(am => am.Movie).AsQueryable();

            if (!string.IsNullOrEmpty(search.Actor) || !string.IsNullOrWhiteSpace(search.Actor)
                )
            {
                query = query.Where(x => (x.FirstName + " " + x.LastName).ToLower().Contains(search.Actor.ToLower()));
            }
            if (!string.IsNullOrEmpty(search.Movie) || !string.IsNullOrWhiteSpace(search.Movie)
                )
            {
                query = query.Where(x => x.ActorMovies.Any(am => am.Movie.Title.ToLower().Contains(search.Movie)));
            }
            var skipCount = search.PerPage * (search.Page - 1);

            var reponse = new PagedResponse <ActorDto>
            {
                CurrentPage  = search.Page,
                ItemsPerPage = search.PerPage,
                TotalCount   = query.Count(),
                Items        = query.Skip(skipCount).Take(search.PerPage).Select(x => mapper.Map <ActorDto>(x)).ToList()
            };

            return(reponse);
        }
        /// <summary>
        /// The request to display search results.
        /// </summary>
        /// <param name="request">A request model that contains the search parameters.</param>
        /// <returns></returns>
        public ActionResult SearchResult(ActorSearch search)
        {
            /* Call the DAL and pass the values as a model back to the View */
            ActorDAO      dao    = new ActorDAO(connectionString);
            IList <Actor> result = dao.FindActors(search.FirstName);

            return(View(result));
        }
Пример #4
0
        /// <summary>
        /// The request to display search results.
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        public IActionResult SearchResult(ActorSearch request)
        {
            IActorDAL     dal    = new ActorDAL(@"Data Source=.\SQLEXPRESS;Initial Catalog=DVDStore;Integrated Security=True");
            IList <Actor> actors = dal.FindActors(request.LastName);

            request.Results = actors;

            return(View("Index", request));
        }
Пример #5
0
        public Pagination <ActorDTO> Execute(ActorSearch request)
        {
            var data = Context.Actors.AsQueryable();

            if (request.OnlyActive.HasValue)
            {
                data = data.Where(a => a.Deleted != request.OnlyActive);
            }
            if (request.ActorFirstName != null)
            {
                var keyword = request.ActorFirstName.ToLower();
                data = data.Where(a => a.ActorFirstName.ToLower().Contains(keyword) && a.Deleted == false);
            }
            if (request.ActorLastName != null)
            {
                var keyword = request.ActorLastName.ToLower();
                data = data.Where(a => a.ActorLastName.ToLower().Contains(keyword) && a.Deleted == false);
            }

            var totalCount = data.Count();

            data = data.Skip((request.PageNumber - 1) * request.PerPage)
                   .Take(request.PerPage);

            var pagesCount = (int)Math.Ceiling((double)totalCount / request.PerPage);

            return(new Pagination <ActorDTO>
            {
                CurrentPage = request.PageNumber,
                PagesCount = pagesCount,
                TotalCount = totalCount,
                Data = data.Select(a => new ActorDTO
                {
                    Id = a.Id,
                    ActorFirstName = a.ActorFirstName,
                    ActorLastName = a.ActorLastName,
                    Shows = a.ActorShows.Select(s => s.Show.ShowTitle)
                })
            });
        }
Пример #6
0
 public IActionResult Get([FromQuery] ActorSearch search, [FromServices] IGetActorsQuery query)
 {
     //var actors = context.Actors.ToList();
     return(Ok(executor.ExecuteQuery(query, search)));
 }
Пример #7
0
 /// <summary>
 /// The request to display search results.
 /// </summary>
 /// <param name="request">A request model that contains the search parameters.</param>
 /// <returns></returns>
 public ActionResult SearchResult(ActorSearch model)
 {
     /* Call the DAL and pass the values as a model back to the View */
     model.Actors = dal.FindActors(model.LastNameSearchString);
     return(View(model));
 }
        /// <summary>
        /// The request to display an empty search page.
        /// </summary>
        /// <returns></returns>
        public ActionResult Index()
        {
            ActorSearch search = new ActorSearch();

            return(View(search));
        }
Пример #9
0
        public PagedResponse <ActorDto> Execute(ActorSearch search)
        {
            var query = _context.Actors.Include(x => x.ActorMovies)
                        .ThenInclude(m => m.Movie)
                        .ThenInclude(g => g.Genre)
                        .AsQueryable();

            #region Filters
            if (!string.IsNullOrEmpty(search.FirstName) || !string.IsNullOrWhiteSpace(search.FirstName))
            {
                query = query.Where(x => x.FirstName.ToLower().Contains(search.FirstName.ToLower()));
            }

            if (!string.IsNullOrEmpty(search.LastName) || !string.IsNullOrWhiteSpace(search.LastName))
            {
                query = query.Where(x => x.LastName.ToLower().Contains(search.LastName.ToLower()));
            }

            if (!string.IsNullOrEmpty(search.BirthPlace) || !string.IsNullOrWhiteSpace(search.BirthPlace))
            {
                query = query.Where(x => x.BirthPlace.ToLower().Contains(search.BirthPlace.ToLower()));
            }

            if (!string.IsNullOrEmpty(search.Movie) || !string.IsNullOrWhiteSpace(search.Movie))
            {
                query = query.Where(x => x.ActorMovies.Select(am => am.Movie.Title.ToLower()).Contains(search.Movie.ToLower()));
            }

            if (search.Oscars != null)
            {
                query = query.Where(x => x.Oscars == search.Oscars);
            }

            if (search.MinOscars != null)
            {
                query = query.Where(x => x.Oscars >= search.MinOscars);
            }

            if (search.MaxOscars != null)
            {
                query = query.Where(x => x.Oscars <= search.MaxOscars);
            }

            if (search.Movies != null)
            {
                query = query.Where(x => x.MoviesNumber == search.Movies);
            }
            if (search.MinMovies != null)
            {
                query = query.Where(x => x.MoviesNumber >= search.MinMovies);
            }
            if (search.MaxMovies != null)
            {
                query = query.Where(x => x.MoviesNumber <= search.MaxMovies);
            }
            if (search.Age != null)
            {
                query = query.Where(x => x.Age == search.Age);
            }
            if (search.MinAge != null)
            {
                query = query.Where(x => x.Age >= search.MinAge);
            }
            if (search.MaxAge != null)
            {
                query = query.Where(x => x.Age <= search.MaxAge);
            }
            #endregion

            var skipCount = search.PerPage * (search.Page - 1);

            var response = new PagedResponse <ActorDto>
            {
                TotalCount   = query.Count(),
                CurrentPage  = search.Page,
                ItemsPerPage = search.PerPage,
                Items        = query.Skip(skipCount)
                               .Take(search.PerPage)
                               .Select(a => new ActorDto
                {
                    Id          = a.Id,
                    FirstName   = a.FirstName,
                    LastName    = a.LastName,
                    BirthPlace  = a.BirthPlace,
                    Age         = a.Age,
                    Oscars      = a.Oscars ?? 0,
                    FullName    = a.FirstName + " " + a.LastName,
                    MovieNumber = a.ActorMovies.Count(),
                    ActorMovies = a.ActorMovies.Select(am => new ActorMovieDto
                    {
                        Id   = am.MovieId,
                        Name = am.Movie.Title,
                        ActorCharacterName = am.ActorCharachterName,
                        Oscars             = am.Movie.Oscars ?? 0,
                        Price = am.Movie.Price,
                        Year  = am.Movie.Year,
                        Genre = am.Movie.Genre.Name
                    })
                })
            };
            return(response);
        }
Пример #10
0
 public ActionResult Get([FromQuery] ActorSearch criteria)
 => Ok(getActorsCommand.Execute(criteria));
Пример #11
0
        public IActionResult Get([FromQuery] ActorSearch search, [FromServices] IGetActorsQuery query)
        {
            var result = _executor.ExecuteQuery(query, search);

            return(Ok(result));
        }