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); } }