public List<iatiactivityModel> FilterDP(List<participatingorg> _iOrgs)
{
if (_iOrgs == null) _iOrgs = Sessions.iOrgs.Orgs;
var relevantActivities = Sessions.activitiesContainer?.RelevantActivities;
var projectsImpOrgs = new List<participatingorg>();
var exAgencies = Sessions.iOrgs.ExecutingAgencies;
relevantActivities?.ForEach(e =>
{
if (e.ImplementingOrgs != null) projectsImpOrgs.AddRange(e.ImplementingOrgs);
e.AllID = null;
});
foreach (var iOrg in _iOrgs)
{
var pOrgs = projectsImpOrgs.FindAll(f => (!string.IsNullOrWhiteSpace(iOrg.Name) && f.Name == iOrg.Name));
if (pOrgs.Count == 0) projectsImpOrgs.FindAll(f => (iOrg.@ref != null && f.@ref == iOrg.@ref));
pOrgs.ForEach(e =>
{
e.AllID = iOrg.AllID;
var aimsName = exAgencies.FirstOrDefault(f => f.AllID != Sessions.DP.AllID && f.AllID == iOrg.AllID)?.Name;
e.AimsName = aimsName;
});
}
//set managing DP
relevantActivities?.ForEach(e =>
{
if (string.IsNullOrWhiteSpace(e.AllID) || !Sessions.iOrgs.FundSources.Exists(d => d.AllID == e.AllID))
e.AllID = Sessions.DP.AllID;
});
Sessions.CurrentStage = Stage.FilterDP;
Sessions.activitiesContainer.iatiActivities = relevantActivities;
return ToMinifiedIatiActivitiesModel(relevantActivities);
}