/// <summary> /// Get Records in Regions pie chart /// </summary> /// <param name="languageID"></param> /// <returns></returns> public static List <Region_Language> GetRecordsInRegion(Guid languageID, List <Guid> listOfRecordId, List <Guid> selectedRegions) { List <Region_Language> regionLanguages = new List <Region_Language>(); List <Region> regions = new List <Region>(); string currentYear = DateTime.Now.Year.ToString(); Guid yearVariableID = new Guid(AppSettingsUtility.GetString(AppSettingsKeys.YearVariableID)); List <Guid> recordIds = GetActiveCurrentYearRecordsIDs(languageID); using (var context = new TSMContext()) { //var filteredRecords = GetRecordList(languageID, selectedRegions, selectedCountries, selectedSectors, selectedDocumentTypes, documentTypeVariableID); // var filteredRecordsID = filteredRecords.Select(r => r.ID).ToList(); var filteredRecordsID = listOfRecordId; if (selectedRegions == null || selectedRegions.Count <= 0) { selectedRegions = (from r in context.Regions select r.ID).ToList(); } var query = (from r in context.Regions.Include("Region_Languages") join rl in context.Region_Languages on r.ID equals rl.ID where selectedRegions.Contains(r.ID) && r.Records.Any(re => filteredRecordsID.Contains(re.ID)) && rl.LanguageID == languageID && r.Type == TSM.Entity.RegionType.Geographical && r.IsDeleted == false && r.IsActive select new { Region = r, RegionName = r.Region_Languages.Where(rec => r.Records.Any(re => filteredRecordsID.Contains(re.ID)) && rec.LanguageID == languageID).FirstOrDefault().Name, RecordCount = r.Records.Where(re => recordIds.Contains(re.ID) && filteredRecordsID.Contains(re.ID)).Count() }).OrderBy(rls => rls.RegionName); foreach (var row in query) { Region_Language regionLanguage = new Region_Language(); regionLanguage.ID = row.Region.ID; regionLanguage.Name = row.RegionName; regionLanguage.RecordCount = row.RecordCount; regionLanguages.Add(regionLanguage); } } return(regionLanguages); }
/// <summary> /// /// </summary> /// <param name="languageID"></param> /// <returns></returns> public static List <Region_Language> GetRecordsInRegion(Guid languageID) { List <Region_Language> regionLanguages = new List <Region_Language>(); List <Region> regions = new List <Region>(); string currentYear = DateTime.Now.Year.ToString(); Guid yearVariableID = new Guid(AppSettingsUtility.GetString(AppSettingsKeys.YearVariableID)); List <Guid> recordIds = GetActiveCurrentYearRecordsIDs(languageID); using (var context = new TSMContext()) { var query = (from r in context.Regions.Include("Region_Languages") join rl in context.Region_Languages on r.ID equals rl.ID where rl.LanguageID == languageID && r.Type == TSM.Entity.RegionType.Geographical && r.IsDeleted == false && r.IsActive select new { Region = r, RegionName = r.Region_Languages.Where(rgl => rgl.LanguageID == languageID).FirstOrDefault().Name, RecordCount = r.Records.Where(re => recordIds.Contains(re.ID)).Count() }).OrderBy(rls => rls.RegionName); foreach (var row in query) { Region_Language regionLanguage = new Region_Language(); regionLanguage.ID = row.Region.ID; regionLanguage.Name = row.RegionName; regionLanguage.RecordCount = row.RecordCount; regionLanguages.Add(regionLanguage); } } return(regionLanguages); }