public DashboardObj GetPARForDashboard() { var creditLoan = _dataContext.credit_loan .Where(o => o.CreatedOn.Value.Year == DateTime.Now.Year && o.Deleted == false) .Select(x => new { x.CreatedOn, x.LoanApplicationId, x.PastDuePrincipal, x.OutstandingPrincipal }).GroupBy(y => new { y.CreatedOn.Value.Month }, (key, group) => new { MonthNumber = key.Month, TotalPastDuePrincipal = group.Sum(x => x.PastDuePrincipal), TotalOutstandingPrincipal = group.Sum(x => x.OutstandingPrincipal), Percent = 0 }).ToList(); List <int> loanCount = new List <int>(); foreach (var app in MonthNumberPair) { var result = creditLoan.FirstOrDefault(x => x.MonthNumber == app.Key); decimal?par = 0; if (result != null) { par = (result.TotalPastDuePrincipal / result.TotalOutstandingPrincipal) * 100; } int laonparCalc = Decimal.ToInt32(par.Value); loanCount.Add(laonparCalc); } var parAnalysis = new DashboardObj { Labels = new string[] { "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sept", "Oct", "Nov", "Dec" }, Datasets = new List <Dataset> { new Dataset { Label = "PAR (%)", BorderColor = "#1E88E5", BackgroundColor = "#42A5F5", Data = loanCount.ToArray(), Fill = false, }, } }; return(parAnalysis); }
public DashboardObj GetPerformanceMatrics() { var creditLoanApplication = (from a in _dataContext.credit_loanapplication where a.Deleted == false && a.CreatedOn.Value.Year == DateTime.Now.Year select new { Month = a.CreatedOn.Value.Month, LoanApplicationId = a.LoanApplicationId, }).GroupBy(x => new { x.Month }, (key, group) => new { MonthNumber = key.Month, Count = group.Count(), }).ToList(); var disbursement = _dataContext.credit_loan .Where(o => o.CreatedOn.Value.Year == DateTime.Now.Year && o.Deleted == false) .Select(x => new { x.CreatedOn, x.LoanApplicationId }).GroupBy(y => new { y.CreatedOn.Value.Month }, (key, group) => new { MonthNumber = key.Month, Count = group.Count() }).ToList(); var closedLoans = _dataContext.credit_loan .Where(o => o.CreatedOn.Value.Year == DateTime.Now.Year && o.Deleted == false && o.MaturityDate < DateTime.Now) .Select(x => new { x.CreatedOn, x.LoanApplicationId }).GroupBy(y => new { y.CreatedOn.Value.Month }, (key, group) => new { MonthNumber = key.Month, Count = group.Count() }).ToList(); List <int> loanDisbursementAnnualCount = new List <int>(); List <int> creditApplicationAnnualCount = new List <int>(); List <int> closedLoanAnnualCount = new List <int>(); foreach (var app in MonthNumberPair) { var result = creditLoanApplication.FirstOrDefault(x => x.MonthNumber == app.Key); var count = 0; if (result != null) { count = result.Count; } creditApplicationAnnualCount.Add(count); } foreach (var app in MonthNumberPair) { var result = disbursement.FirstOrDefault(x => x.MonthNumber == app.Key); var count = 0; if (result != null) { count = result.Count; } loanDisbursementAnnualCount.Add(count); } foreach (var app in MonthNumberPair) { var result = closedLoans.FirstOrDefault(x => x.MonthNumber == app.Key); var count = 0; if (result != null) { count = result.Count; } closedLoanAnnualCount.Add(count); } var performanceMatrics = new DashboardObj { Labels = new string[] { "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sept", "Oct", "Nov", "Dec" }, Datasets = new List <Dataset> { new Dataset { Label = "Monthly Application", BorderColor = "#4bc0c0", Data = creditApplicationAnnualCount.ToArray(), Fill = false, }, new Dataset { Label = "Monthly Disbursement", BorderColor = "#565656", Data = loanDisbursementAnnualCount.ToArray(), Fill = false, }, new Dataset { Label = "Monthly Closed Loans", BorderColor = "#903656", Data = closedLoanAnnualCount.ToArray(), Fill = false, } } }; return(performanceMatrics); }
public DashboardObj GetInvestmentPerformanceChart() { var InvestmentApplication = _dataContext.inf_investorfund .Where(o => o.CreatedOn.Value.Year == DateTime.Now.Year && o.Deleted == false) .Select(x => new { x.CreatedOn, x.InvestorFundId }).GroupBy(y => new { y.CreatedOn.Value.Month }, (key, group) => new { MonthNumber = key.Month, Count = group.Count() }).ToList(); var CollectionApplication = _dataContext.inf_collection .Where(o => o.CreatedOn.Value.Year == DateTime.Now.Year && o.Deleted == false) .Select(x => new { x.CreatedOn, x.CollectionId }).GroupBy(y => new { y.CreatedOn.Value.Month }, (key, group) => new { MonthNumber = key.Month, Count = group.Count() }).ToList(); var LiquidationApplication = _dataContext.inf_liquidation .Where(o => o.CreatedOn.Value.Year == DateTime.Now.Year && o.Deleted == false) .Select(x => new { x.CreatedOn, x.LiquidationId }).GroupBy(y => new { y.CreatedOn.Value.Month }, (key, group) => new { MonthNumber = key.Month, Count = group.Count() }).ToList(); List <int> investmentCount = new List <int>(); List <int> collectionCount = new List <int>(); List <int> liquidationCount = new List <int>(); foreach (var app in MonthNumberPair) { var result = InvestmentApplication.FirstOrDefault(x => x.MonthNumber == app.Key); var count = 0; if (result != null) { count = result.Count; } investmentCount.Add(count); } foreach (var app in MonthNumberPair) { var result = CollectionApplication.FirstOrDefault(x => x.MonthNumber == app.Key); var count = 0; if (result != null) { count = result.Count; } collectionCount.Add(count); } foreach (var app in MonthNumberPair) { var result = LiquidationApplication.FirstOrDefault(x => x.MonthNumber == app.Key); var count = 0; if (result != null) { count = result.Count; } liquidationCount.Add(count); } var performanceMatrics = new DashboardObj { Labels = new string[] { "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sept", "Oct", "Nov", "Dec" }, Datasets = new List <Dataset> { new Dataset { Label = "Investment Application", BorderColor = "#4bc0c0", Data = investmentCount.ToArray(), Fill = false, }, new Dataset { Label = "Collection Application", BorderColor = "#565656", Data = collectionCount.ToArray(), Fill = false, }, new Dataset { Label = "Liquidation Application", BorderColor = "#903656", Data = liquidationCount.ToArray(), Fill = false, } } }; return(performanceMatrics); }