public IQueryable <Project> GetProjects(ProjectFilterServiceModel serviceModel = null) { var projects = GetProjects().AsNoTracking(); if (serviceModel != null) { foreach (var taxonomyName in serviceModel.TaxonomyNames) { projects = projects.Where(o => o.EntityTaxonomies.Select(e => e.Taxonomy.Name).Contains(taxonomyName)); } if (serviceModel.City != null) { projects = projects.Where(o => o.City.Name == serviceModel.City); } if (serviceModel.Title != null) { projects = projects.Where(o => o.Details.FirstOrDefault(d => d.Title != null && (d.Title.ToLower().Contains(serviceModel.Title.ToLower()) || serviceModel.Title.ToLower().Contains(d.Title.ToLower()))) != null); } } projects = projects.OrderByDescending(o => o.Id); return(projects); }
public async Task <BaseJsonResult> GetProjects(ProjectFilterViewModel viewModel) { var serviceModel = ProjectFilterServiceModel.FromViewModel(viewModel); var entities = await _projectService.GetProjects(serviceModel); var viewModels = new PageEntityViewModel <Project, ProjectViewModel>(entities, o => ProjectViewModelExtended.FromEntity(o, EmptyProjectViewModel)); return(new BaseJsonResult(Omi.Base.Properties.Resources.POST_SUCCEEDED, viewModels)); }
public async Task <OkObjectResult> GetProjects(ProjectFilterViewModel viewModel) { var serviceModel = ProjectFilterServiceModel.FromViewModel(viewModel); var entities = _projectService.GetProjects(serviceModel); var pageList = await PaginatedList <Project> .CreateAsync(entities, serviceModel.Page, serviceModel.PageSize); var viewModels = new PageEntityViewModel <Project, ProjectViewModel>(pageList, entity => ProjectViewModelExtended.FromEntity(entity)); return(Ok(viewModels)); }
public async Task <OkObjectResult> GetProjects(ProjectFilterViewModel searchParams) { var filterModel = ProjectFilterServiceModel.FromViewModel(searchParams); var entities = _projects.GetProjects(filterModel); var pageList = await PaginatedList <Project> .CreateAsync(entities, searchParams.Page, searchParams.PageSize); var result = new PaginationResult <Project, ProjectViewModel>(pageList, entity => ProjectViewModel.FromEntity(entity)); return(Ok(result)); }
public async Task <PaginatedList <Project> > GetProjects(ProjectFilterServiceModel serviceModel) { var Projects = GetProjects().AsNoTracking(); foreach (var taxonomyName in serviceModel.TaxonomyNames) { Projects = Projects.Where(o => o.EntityTaxonomies.Select(e => e.Taxonomy.Name).Contains(taxonomyName)); } if (serviceModel.CityName != null) { Projects = Projects.Where(o => o.City.Name == serviceModel.CityName); } Projects = Projects.OrderByDescending(o => o.Id); var result = await PaginatedList <Project> .CreateAsync(Projects, serviceModel.Page, serviceModel.PageSize); return(result); }