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;
}