public List <Organization> GetOrganizationBySearch(OrganizationSearchCriteria criteria) { IQueryable <Organization> organizations = db.Organizations.Where(org => org.IsDeleted == false).Include(org => org.Courses).AsQueryable(); if (!string.IsNullOrEmpty(criteria.Name)) { organizations = organizations.Where(org => org.Name.ToLower().Contains(criteria.Name.ToLower())); } if (!string.IsNullOrEmpty(criteria.Code)) { organizations = organizations.Where(org => org.Code.ToLower().Contains(criteria.Code.ToLower())); } if (!string.IsNullOrEmpty(criteria.Address)) { organizations = organizations.Where(org => org.Address.ToLower().Contains(criteria.Address.ToLower())); } if (!string.IsNullOrEmpty(criteria.ContactNo)) { organizations = organizations.Where(org => org.ContactNo.ToLower().Contains(criteria.ContactNo.ToLower())); } var datalist = organizations.ToList(); foreach (var organization in datalist) { organization.Courses = organization.Courses.Where(c => c.IsDeleted == false).ToList(); } return(datalist); }
public async Task <ActionResult <ClientOrganization[]> > GetAsync([FromQuery] OrganizationSearchCriteria searchCriteria) { return(DBContext.Organization.Include(o => o.OrganizationBio) .Include(o => o.Workplace).ThenInclude(w => w.Review) .Select(o => new ClientOrganization() { OrganizationNumber = o.OrganizationNumber, Name = o.Name, Homepage = o.Homepage, City = o.City, Country = o.Country, Address = o.Address, EmployeeCount = o.Employees, SectorCode = o.SectorCode, Type = o.Type, ZIP = o.Zip, Bio = o.OrganizationBio == null ? null : o.OrganizationBio.Bio, WorkplaceCount = o.Workplace.Count, ReviewCount = o.Workplace.Sum(w => w.Review.Count), Rating = (float)o.Workplace.Sum(w => w.Review.Count) == 0 ? 0.0F : (float)o.Workplace.Average(w => w.Review.Average(r => r.Rating)) }).Where(cw => (searchCriteria.Name == null) ? true : cw.Name.StartsWith(searchCriteria.Name) || cw.Name.Contains($" {searchCriteria.Name}")) .Where(cw => (searchCriteria.City == null) ? true : cw.City == searchCriteria.City) .Where(cw => (searchCriteria.Country == null) ? true : cw.Country == searchCriteria.Country) .Where(cw => cw.EmployeeCount >= searchCriteria.MinEmployees) .Where(cw => (searchCriteria.MaxEmployees == 0) ? true : cw.EmployeeCount <= searchCriteria.MaxEmployees) .Where(cw => (searchCriteria.MinWorkplaces == 0) ? true : cw.WorkplaceCount >= searchCriteria.MinWorkplaces) .Where(cw => (searchCriteria.MinReviewCount == 0) ? true : cw.ReviewCount >= searchCriteria.MinReviewCount) .ToArray()); }
public void GetOrganizationsBySearchCriteria() { Int32 organizationCategoryId; OrganizationList organizations; String name; Boolean hasSpiecesCollection; OrganizationSearchCriteria searchCriteria; // Test organization name. name = "M%"; searchCriteria = new OrganizationSearchCriteria(); searchCriteria.Name = name; organizations = GetOrganizationManager(true).GetOrganizationsBySearchCriteria(GetUserContext(), searchCriteria); Assert.IsFalse(organizations.IsEmpty()); name = "Tilt%"; searchCriteria = new OrganizationSearchCriteria(); searchCriteria.Name = name; organizations = GetOrganizationManager().GetOrganizationsBySearchCriteria(GetUserContext(), searchCriteria); Assert.IsTrue(organizations.IsEmpty()); // Test short name. name = "Art%"; searchCriteria = new OrganizationSearchCriteria(); searchCriteria.ShortName = name; organizations = GetOrganizationManager().GetOrganizationsBySearchCriteria(GetUserContext(), searchCriteria); Assert.IsFalse(organizations.IsEmpty()); name = "Tilt%"; searchCriteria = new OrganizationSearchCriteria(); searchCriteria.ShortName = name; organizations = GetOrganizationManager().GetOrganizationsBySearchCriteria(GetUserContext(), searchCriteria); Assert.IsTrue(organizations.IsEmpty()); // Test organization category Id. organizationCategoryId = 3; searchCriteria = new OrganizationSearchCriteria(); searchCriteria.OrganizationCategoryId = organizationCategoryId; organizations = GetOrganizationManager().GetOrganizationsBySearchCriteria(GetUserContext(), searchCriteria); Assert.IsFalse(organizations.IsEmpty()); organizationCategoryId = -1; searchCriteria = new OrganizationSearchCriteria(); searchCriteria.OrganizationCategoryId = organizationCategoryId; organizations = GetOrganizationManager().GetOrganizationsBySearchCriteria(GetUserContext(), searchCriteria); Assert.IsTrue(organizations.IsEmpty()); // Test hasSpiecesCollection hasSpiecesCollection = true; searchCriteria = new OrganizationSearchCriteria(); searchCriteria.HasSpiecesCollection = hasSpiecesCollection; organizations = GetOrganizationManager().GetOrganizationsBySearchCriteria(GetUserContext(), searchCriteria); Assert.IsFalse(organizations.IsEmpty()); }
public ActionResult Index(OrganizationSearchCriteria model) { var organizations = _organizationManager.GetOrganizationBySearch(model); if (organizations == null) { organizations = new List <Organization>(); } model.OrganizationLists = organizations; return(View(model)); }
public List <Organization> GetOrganizationBySearch(OrganizationSearchCriteria criteria) { List <Organization> organizations = _organizationRepository.GetOrganizationBySearch(criteria); return(organizations); }