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)); }
public BudgetController(IConfiguration iconfiguration, MonioContext context) { _iconfiguration = iconfiguration; _budgetDataService = new BudgetDataService(context); }