public override IList <Site> GetSitesByRegionType(RegionType regionType)
        {
            IList <Region> regions = GetAllRegionsByRegionType(regionType);

            using (var transaction = new TransactionScope(_configuration))
            {
                IList <Site> sites = null;
                foreach (Region region in regions)
                {
                    var          sDs      = new SiteDataStore(transaction);
                    IList <Site> subSites = sDs.FindAllByRegion(region.Id);
                    if (sites == null)
                    {
                        sites = subSites;
                    }
                    else
                    {
                        foreach (Site site in subSites)
                        {
                            sites.Add(site);
                        }
                    }
                }
                return(sites);
            }
        }
 public override IList <Site> GetAllSitesByRegion(Region region, bool recursive)
 {
     using (var transaction = new TransactionScope(_configuration))
     {
         var          sDs   = new SiteDataStore(transaction);
         IList <Site> sites = sDs.FindAllByRegion(region.Id);
         if (recursive)
         {
             // Find children of this parent region.
             var            rDs          = new RegionDataStore(transaction);
             IList <Region> childRegions = rDs.FindByParentRegion(region.Id);
             foreach (Region subRegion in childRegions)
             {
                 IList <Site> subSites = GetAllSitesByRegion(subRegion, true);
                 foreach (Site subSite in subSites)
                 {
                     sites.Add(subSite);
                 }
             }
         }
         return(sites);
     }
 }