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

GetAllImplementingOrg() private method

private GetAllImplementingOrg ( FilterBDModel filterDBModel ) : iOrgs
filterDBModel AIMS_DB_IATI.WebAPI.Models.IATIImport.FilterBDModel
return AIMS_DB_IATI.WebAPI.Models.IATIImport.iOrgs
        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;
        }