public void GetRegionsByCategories()
        {
            List <WebRegionCategory> regionCategories;
            List <WebRegion>         regions;
            WebRegionCategory        regionCategory;

            regionCategories = null;
            regions          = RegionManager.GetRegionsByCategories(GetContext(), regionCategories);
            Assert.IsTrue(regions.IsEmpty());

            regionCategories = new List <WebRegionCategory>();
            regions          = RegionManager.GetRegionsByCategories(GetContext(), regionCategories);
            Assert.IsTrue(regions.IsEmpty());

            regionCategories  = new List <WebRegionCategory>();
            regionCategory    = new WebRegionCategory();
            regionCategory.Id = 1; // Kommuner
            regionCategories.Add(regionCategory);
            regions = RegionManager.GetRegionsByCategories(GetContext(), regionCategories);
            Assert.IsFalse(regions.IsEmpty());

            regionCategories = RegionManager.GetRegionCategories(GetContext(), true, Settings.Default.SwedenCountryISOCode);
            regions          = RegionManager.GetRegionsByCategories(GetContext(), regionCategories);
            Assert.IsTrue(regions.IsNotEmpty());
        }
        public void TestRegionGeometry()
        {
            // Test geometry for all regions in database.
            List <Int32>              regionIds;
            List <WebRegion>          regions;
            List <WebRegionCategory>  regionCategories, categories;
            List <WebRegionGeography> regionsGeography;
            WebCoordinateSystem       coordinateSystem;

            coordinateSystem    = new WebCoordinateSystem();
            coordinateSystem.Id = CoordinateSystemId.GoogleMercator;
            regionCategories    = RegionManager.GetRegionCategories(GetContext(), false, 0);
            foreach (WebRegionCategory regionCategory in regionCategories)
            {
                categories = new List <WebRegionCategory>();
                categories.Add(regionCategory);
                regions = RegionManager.GetRegionsByCategories(GetContext(), categories);
                if (regions.IsNotEmpty())
                {
                    regionIds = new List <Int32>();
                    foreach (WebRegion region in regions)
                    {
                        regionIds.Add(region.Id);
                    }
                    regionsGeography = RegionManager.GetRegionsGeographyByIds(GetContext(), regionIds, coordinateSystem);
                    Assert.IsTrue(regionsGeography.IsNotEmpty());
                    Assert.AreEqual(regions.Count, regionsGeography.Count);
                }
            }
        }
        public void GetRegionCategories()
        {
            List <WebRegionCategory> regionCategories1, regionCategories2;

            regionCategories1 = RegionManager.GetRegionCategories(GetContext(), true, Settings.Default.SwedenCountryISOCode);
            Assert.IsTrue(regionCategories1.IsNotEmpty());
            foreach (WebRegionCategory regionCategory in regionCategories1)
            {
                Assert.AreEqual(Settings.Default.SwedenCountryISOCode, regionCategory.CountryIsoCode);
            }

            regionCategories2 = RegionManager.GetRegionCategories(GetContext(), false, Settings.Default.SwedenCountryISOCode);
            Assert.IsTrue(regionCategories2.IsNotEmpty());
            Assert.IsTrue(regionCategories1.Count < regionCategories2.Count);

            // Test none existing country iso code.
            regionCategories1 = RegionManager.GetRegionCategories(GetContext(), true, Int32.MinValue);
            Assert.IsTrue(regionCategories1.IsEmpty());
        }
        public void GetRegionsBySearchCriteria()
        {
            List <Int32>             countryIsoCodes;
            List <WebRegion>         regions;
            List <WebRegionCategory> allRegionCategories, regionCategories;
            String                  nameSearchString;
            WebRegionCategory       regionCategory;
            WebRegionSearchCriteria searchCriteria;
            WebRegionType           regionType;
            WebStringSearchCriteria stringSearchCriteria;

            allRegionCategories = RegionManager.GetRegionCategories(GetContext(), false, 0);

            // Test - All parameters are empty.
            // All regions are returned.
            searchCriteria = new WebRegionSearchCriteria();
            regions        = RegionManager.GetRegionsBySearchCriteria(GetContext(), searchCriteria);
            Assert.IsTrue(regions.IsNotEmpty());

            // Test - CountryIsoCodes.
            searchCriteria  = new WebRegionSearchCriteria();
            countryIsoCodes = new List <Int32>();
            countryIsoCodes.Add(allRegionCategories[0].CountryIsoCode);
            searchCriteria.CountryIsoCodes = countryIsoCodes;
            regions = RegionManager.GetRegionsBySearchCriteria(GetContext(), searchCriteria);
            Assert.IsTrue(regions.IsNotEmpty());

            // Name search string.
            searchCriteria       = new WebRegionSearchCriteria();
            nameSearchString     = "U%";
            stringSearchCriteria = new WebStringSearchCriteria();
            stringSearchCriteria.SearchString = nameSearchString;
            searchCriteria.NameSearchString   = stringSearchCriteria;
            regions = RegionManager.GetRegionsBySearchCriteria(GetContext(), searchCriteria);
            Assert.IsTrue(regions.IsNotEmpty());
            // Check that every region name starts with letter "U"
            foreach (WebRegion region in regions)
            {
                Assert.IsTrue(region.Name.Substring(0, 1).Equals("U"));
            }

            // Test - Region categories.
            searchCriteria   = new WebRegionSearchCriteria();
            regionCategories = new List <WebRegionCategory>();
            regionCategory   = allRegionCategories[2];
            regionCategories.Add(regionCategory);
            searchCriteria.Categories = regionCategories;
            regions = RegionManager.GetRegionsBySearchCriteria(GetContext(), searchCriteria);
            Assert.IsTrue(regions.IsNotEmpty());
            // Check that all regions belong to the specified category.
            foreach (WebRegion region in regions)
            {
                Assert.AreEqual(regionCategory.Id, region.CategoryId);
            }

            // Test - Region type.
            searchCriteria      = new WebRegionSearchCriteria();
            regionType          = RegionManager.GetRegionTypes(GetContext())[0];
            searchCriteria.Type = regionType;
            regions             = RegionManager.GetRegionsBySearchCriteria(GetContext(), searchCriteria);
            Assert.IsTrue(regions.IsNotEmpty());

            // Name search string with character '.
            searchCriteria       = new WebRegionSearchCriteria();
            nameSearchString     = "Hej ' hopp";
            stringSearchCriteria = new WebStringSearchCriteria();
            stringSearchCriteria.SearchString = nameSearchString;
            searchCriteria.NameSearchString   = stringSearchCriteria;
            regions = RegionManager.GetRegionsBySearchCriteria(GetContext(), searchCriteria);
            Assert.IsTrue(regions.IsEmpty());
        }