AIMS_BD_IATI.WebAPI.Controllers.IATIImportController.FilterDP C# (CSharp) Method

FilterDP() private method

private FilterDP ( List _iOrgs ) : List
_iOrgs List
return List
        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);
        }