コード例 #1
0
        public JsonResult GetBudgetPlanner(string fyscalYear, int orgId)
        {
            var expenses        = BudgetDataService.Expenses.Where(x => x.OrgId == orgId && x.FyscalYear == fyscalYear);
            var budgetStatus    = BudgetDataService.BudgetStatuses.FirstOrDefault(x => x.OrgId == orgId && x.FyscalYear == fyscalYear);
            var expenditureCols = new List <string> {
                "ExpenseId", "Expenditure"
            };
            var fyMonths = BudgetDataService.GetFyscalMonths(BudgetDataService.Ogranizations.First(x => x.OrgId == orgId).FyscalMonth);

            expenditureCols.AddRange(fyMonths.Values.Select(s => s.ToString()));

            var expenditureDataLst = new List <Dictionary <string, object> >();

            foreach (var exp in expenses)
            {
                var store = new Dictionary <string, object>();
                foreach (var col in expenditureCols)
                {
                    if (col == "ExpenseId")
                    {
                        store.Add(col, exp.ExpenseId);
                    }
                    else if (col == "Expenditure")
                    {
                        store.Add(col, exp.Expenditure);
                    }
                    else
                    {
                        if (Enum.TryParse <Month>(col, out Month colMnth))
                        {
                            var budgetPlan = exp.BudgetPlan.FirstOrDefault(x => x.Month == colMnth);
                            store.Add(col, (budgetPlan == null ? string.Empty : budgetPlan.Value.ToString()));
                        }
                    }
                }

                expenditureDataLst.Add(store);
            }
            var planStatus = expenditureDataLst.Any() ? (budgetStatus == null ? PlannerStatus.Draft.ToString() : budgetStatus.PlannerStatus.ToString()) : PlannerStatus.New.ToString();

            if (planStatus == "New")
            {
                expenditureDataLst.Add(expenditureCols.ToDictionary(k => k, v => (object)string.Empty));
            }

            var retData = new
            {
                plannerStatus = planStatus,
                columns       = expenditureCols,
                budget        = expenditureDataLst.ToArray()
            };

            return(Json(retData, JsonRequestBehavior.AllowGet));
        }
コード例 #2
0
ファイル: BudgetController.cs プロジェクト: ntapps/Mon.io
        public BudgetController(IConfiguration iconfiguration, MonioContext context)
        {
            _iconfiguration = iconfiguration;

            _budgetDataService = new BudgetDataService(context);
        }