Exemple #1
0
        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);
        }
Exemple #2
0
        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);
        }
Exemple #3
0
        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);
        }