/// <summary> /// Get organizations that matches the search criteria. /// </summary> /// <param name="context">Web service request context.</param> /// <param name="searchCriteria">Search criteria.</param> /// <returns>Organizations that matches the search criteria</returns> public static List <WebOrganization> GetOrganizationsBySearchCriteria(WebServiceContext context, WebOrganizationSearchCriteria searchCriteria) { Int32? organizationCategoryId; Boolean?hasSpiecesCollection; List <WebOrganization> organizations; WebOrganization organization; // Check data. searchCriteria.CheckNotNull("searchCriteria"); searchCriteria.CheckStrings(); organizationCategoryId = null; if (searchCriteria.IsOrganizationCategoryIdSpecified) { organizationCategoryId = searchCriteria.OrganizationCategoryId; } hasSpiecesCollection = null; if (searchCriteria.IsHasSpeciesCollectionSpecified) { hasSpiecesCollection = searchCriteria.HasSpeciesCollection; } // Get information from database. using (DataReader dataReader = context.GetUserDatabase().GetOrganizationsBySearchCriteria(searchCriteria.Name, searchCriteria.ShortName, organizationCategoryId, hasSpiecesCollection, context.Locale.Id)) { organizations = new List <WebOrganization>(); while (dataReader.Read()) { organization = new WebOrganization(); organization.LoadData(dataReader); organizations.Add(organization); } } if (organizations.IsNotEmpty()) { foreach (WebOrganization tempOrganization in organizations) { // Get organizationCategory for this organization tempOrganization.Category = GetOrganizationCategory(context, tempOrganization.CategoryId); // Set WebAddress + WebPhone tempOrganization.Addresses = UserManager.GetAddresses(context, 0, tempOrganization.Id); tempOrganization.PhoneNumbers = UserManager.GetPhoneNumbers(context, 0, tempOrganization.Id); } } return(organizations); }
public void GetOrganizationsBySearchCriteria() { List <WebOrganization> organizations; String name; Boolean hasSpiecesCollection; Int32 organizationCategoryId; WebOrganizationSearchCriteria searchCriteria; // Test organization name. name = "M%"; searchCriteria = new WebOrganizationSearchCriteria(); searchCriteria.Name = name; organizations = OrganizationManager.GetOrganizationsBySearchCriteria(GetContext(), searchCriteria); Assert.IsFalse(organizations.IsEmpty()); name = "Tilt%"; searchCriteria = new WebOrganizationSearchCriteria(); searchCriteria.Name = name; organizations = OrganizationManager.GetOrganizationsBySearchCriteria(GetContext(), searchCriteria); Assert.IsTrue(organizations.IsEmpty()); // Test short name. name = "A%"; searchCriteria = new WebOrganizationSearchCriteria(); searchCriteria.ShortName = name; organizations = OrganizationManager.GetOrganizationsBySearchCriteria(GetContext(), searchCriteria); Assert.IsFalse(organizations.IsEmpty()); name = "Tilt%"; searchCriteria = new WebOrganizationSearchCriteria(); searchCriteria.ShortName = name; organizations = OrganizationManager.GetOrganizationsBySearchCriteria(GetContext(), searchCriteria); Assert.IsTrue(organizations.IsEmpty()); // Test organizationCategoryId organizationCategoryId = 3; searchCriteria = new WebOrganizationSearchCriteria(); searchCriteria.OrganizationCategoryId = organizationCategoryId; searchCriteria.IsOrganizationCategoryIdSpecified = true; organizations = OrganizationManager.GetOrganizationsBySearchCriteria(GetContext(), searchCriteria); Assert.IsFalse(organizations.IsEmpty()); organizationCategoryId = -1; searchCriteria = new WebOrganizationSearchCriteria(); searchCriteria.OrganizationCategoryId = organizationCategoryId; searchCriteria.IsOrganizationCategoryIdSpecified = true; organizations = OrganizationManager.GetOrganizationsBySearchCriteria(GetContext(), searchCriteria); Assert.IsTrue(organizations.IsEmpty()); // Test hasSpiecesCollection hasSpiecesCollection = true; searchCriteria = new WebOrganizationSearchCriteria(); searchCriteria.HasSpeciesCollection = hasSpiecesCollection; searchCriteria.IsHasSpeciesCollectionSpecified = true; organizations = OrganizationManager.GetOrganizationsBySearchCriteria(GetContext(), searchCriteria); Assert.IsFalse(organizations.IsEmpty()); // Test with character '. searchCriteria = new WebOrganizationSearchCriteria(); searchCriteria.Name = "And'ers något"; searchCriteria.ShortName = "And'ers"; organizations = OrganizationManager.GetOrganizationsBySearchCriteria(GetContext(), searchCriteria); Assert.IsTrue(organizations.IsEmpty()); }