public iOrgs GetAllImplementingOrg(FilterBDModel filterDBModel) { if (filterDBModel != null) { Sessions.filterBDModel.iatiActivities = filterDBModel.iatiActivities; UpdateActivities(filterDBModel.iatiActivities, Sessions.activitiesContainer.iatiActivities); } //actual method begins here var managingDPs = GetAllFundSources(); var iOrgs = new List<participatingorg>(); foreach (var activity in Sessions.activitiesContainer?.RelevantActivities) { if (activity.ImplementingOrgs != null) iOrgs.AddRange(activity.ImplementingOrgs); } var distictOrgs = iOrgs.DistinctBy(l => l.Name).OrderBy(o => o.Name); var exAgencies = aimsDAL.GetExecutingAgencies(); var returtResult = new iOrgs { Orgs = distictOrgs.ToList(), FundSources = managingDPs, ExecutingAgencyTypes = aimsDAL.GetExecutingAgencyTypes(), ExecutingAgencies = exAgencies }; Sessions.iOrgs = returtResult; foreach (var org in distictOrgs) { //check for matching managing DP from AIMS var managingDP = !string.IsNullOrWhiteSpace(org.@ref) ? managingDPs.FirstOrDefault(q => q.IATICode != null && q.IATICode.Contains(org.@ref)) : null; //Add selected value org.AllID = managingDP == null ? Sessions.DP.AllID : managingDP.AllID; GuessAgency(org, false); } Sessions.CurrentStage = Stage.FilterDP; return returtResult; }
public FilterBDModel SubmitHierarchy(HeirarchyModel heirarchyModel) { if (Sessions.activitiesContainer.IsHierarchyLoaded == true) return null; var returnResult = new FilterBDModel(); heirarchyModel = heirarchyModel ?? Sessions.heirarchyModel; var iatiActivities = Sessions.activitiesContainer?.iatiActivities; if (heirarchyModel == null) { returnResult.iatiActivities = ToMinifiedIatiActivitiesModel(Sessions.activitiesContainer?.iatiActivities); } else { if (heirarchyModel.SelectedHierarchy == 1) { iatiActivities = ImportLogic.LoadH1ActivitiesWithChild(iatiActivities); returnResult.iatiActivities = ToMinifiedIatiActivitiesModel(iatiActivities, false, true); } else { iatiActivities = ImportLogic.LoadH2ActivitiesWithParent(iatiActivities); returnResult.iatiActivities = ToMinifiedIatiActivitiesModel(iatiActivities); } Sessions.activitiesContainer.IsHierarchyLoaded = true; } returnResult.iatiActivities = returnResult.iatiActivities.OrderByDescending(k => k.IsRelevant).ToList(); Sessions.CurrentStage = Stage.FilterBD; Sessions.heirarchyModel = heirarchyModel; Sessions.filterBDModel = returnResult; Sessions.activitiesContainer.iatiActivities = iatiActivities; return returnResult; }