Пример #1
0
        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;
        }
Пример #2
0
 public HeirarchyModel()
 {
     SampleIatiActivity = new iatiactivity();
 }