private List<planneddisbursement> GetPlannedDisbursments(iatiactivity activity) { List<planneddisbursement> planneddisbursements = new List<planneddisbursement>(); if (activity.planneddisbursement != null) { //get planned disbursements planneddisbursements.AddRange(activity.planneddisbursement); } if (activity.budget != null) { budget[] budgets = activity.budget; //get planned from budget var originalBudgets = budgets.Where(w => w.type == "1").ToList(); var revisedBudgets = budgets.Where(w => w.type == "2").ToList(); foreach (var revisedBudget in revisedBudgets) { originalBudgets.RemoveAll(r => ( r.periodstart?.isodate >= revisedBudget.periodstart?.isodate && r.periodstart?.isodate <= revisedBudget.periodend?.isodate ) || (r.periodend?.isodate >= revisedBudget.periodstart?.isodate && r.periodend?.isodate <= revisedBudget.periodend?.isodate ) || (revisedBudget.periodstart?.isodate >= r.periodstart?.isodate && revisedBudget.periodend?.isodate <= r.periodstart?.isodate ) || (revisedBudget.periodstart?.isodate >= r.periodend?.isodate && revisedBudget.periodend?.isodate <= r.periodend?.isodate ) ); } var margedBudgets = new List<budget>(); margedBudgets.AddRange(originalBudgets); margedBudgets.AddRange(revisedBudgets); foreach (var item in margedBudgets) { planneddisbursements.Add(new planneddisbursement { periodstart = new planneddisbursementPeriodstart { isodate = item.periodstart?.isodate ?? default(DateTime) }, periodend = new planneddisbursementPeriodend { isodate = item.periodend?.isodate ?? default(DateTime) }, value = item.value }); } } return planneddisbursements; }
public HeirarchyModel() { SampleIatiActivity = new iatiactivity(); }