AIMS_BD_IATI.DAL.ImportLogic.LoadH1ActivitiesWithChild C# (CSharp) Метод

LoadH1ActivitiesWithChild() публичный статический Метод

public static LoadH1ActivitiesWithChild ( List iatiActivities ) : List
iatiActivities List
Результат List
        public static List<iatiactivity> LoadH1ActivitiesWithChild(List<iatiactivity> iatiActivities)
        {
            var H1Activities = iatiActivities.FindAll(f => f?.hierarchy == 1);

            foreach (var H1Activity in H1Activities)
            {
                #region populate child activities
                H1Activity.childActivities.Clear();
                if (H1Activity.relatedactivity != null)
                {
                    foreach (var ra in H1Activity.relatedactivity.Where(r => r.type == "2"))
                    {
                        //load related activities
                        var ha = iatiActivities.Find(f => f.IatiIdentifier == ra.@ref);

                        if (ha != null)
                        {
                            H1Activity.childActivities.Add(ha);
                        }
                    }
                }
                #endregion

                #region To Resolve participating org
                var participatingOrgs = H1Activity.ImplementingOrgs;
                if (participatingOrgs.Count > 0)
                {
                    ///iOrgs.AddRange(participatingOrgs);
                }
                else if (H1Activity.childActivities.Count > 0)
                {
                    participatingorg dominatingParticipatingorg = null;
                    decimal highestCommitment = 0;
                    foreach (var relatedActivity in H1Activity.childActivities) // for h2Acts
                    {
                        participatingOrgs = relatedActivity.ImplementingOrgs;
                        ///iOrgs.AddRange(participatingOrgs);

                        //getting dominating participating org
                        var tc = relatedActivity.TotalCommitment;
                        if (tc > highestCommitment)
                        {
                            highestCommitment = tc;
                            dominatingParticipatingorg = participatingOrgs.FirstOrDefault();
                        }
                    }

                    //set dominating participating org to h1activity
                    if (dominatingParticipatingorg != null)
                    {
                        List<participatingorg> participatingorgs = H1Activity.participatingorg?.ToList();
                        participatingorgs.Add(dominatingParticipatingorg);
                        H1Activity.participatingorg = participatingorgs.ToArray();
                    }

                }
                #endregion
            }
            return H1Activities;
        }