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); }
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)); }
/// <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)); }
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) }) }); }
public IActionResult Get([FromQuery] ActorSearch search, [FromServices] IGetActorsQuery query) { //var actors = context.Actors.ToList(); return(Ok(executor.ExecuteQuery(query, search))); }
/// <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)); }
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); }
public ActionResult Get([FromQuery] ActorSearch criteria) => Ok(getActorsCommand.Execute(criteria));
public IActionResult Get([FromQuery] ActorSearch search, [FromServices] IGetActorsQuery query) { var result = _executor.ExecuteQuery(query, search); return(Ok(result)); }