using BuddyFinance.Admin.Areas.Admin.Models; using BuddyFinance.Admin.Controllers; using BuddyFinance.Admin.Models; using BuddyFinance.Common.Integration; using BuddyFinance.Integration.Models.Enums; using BuddyFinance.Integration.Models.Loans; using BuddyFinance.Integration.Models.ManageCash; using BuddyFinance.Integration.Models.PreLoanRequests; using BuddyFinance.Integration.Models.Profiles; using Microsoft.AspNetCore.Mvc; using Microsoft.Extensions.Configuration; using System.Linq; namespace BuddyFinance.Admin.Areas.Admin.Controllers { [Area("Admin")] public class HomeController : BaseController { public HomeController(IConfiguration configuration, BuddyFinanceDbContext dbContext) : base(configuration, dbContext) { masterUrl = $"{Configuration.GetValue("apiRootUrl", "")}"; } private string masterUrl; public IActionResult Index() { return View(GetDashboard()); } public IActionResult Dashboard() { return View("Index", GetDashboard()); } public DashboardViewModel GetDashboard() { var dashboard = new DashboardViewModel(); //Get Stats var apiResponse = WebApiHelper.Get(masterUrl + "profiles", "", _token); if (apiResponse.ErrorCode == 0) { var response = apiResponse.Result; //if (response.ErrorCode == 0) //{ // dashboard.TotalAvailableCash = (double)response.Result.AvailableFunds; //} if (response.ErrorCode == 0) { dashboard.TotalLenders = response.Result.Count(m => m.Lender != null && m.StatusId == (int)ProfileStatusEnum.Approved); dashboard.TotalBorrowers = response.Result.Count(m => m.Borrower != null && m.StatusId == (int)ProfileStatusEnum.Approved); dashboard.TotalPendingApplications = response.Result.Count(m => m.StatusId == (int)ProfileStatusEnum.Pending); } } //var apiResponse1 = WebApiHelper.Get(masterUrl + "profiles", "", _token); //if (apiResponse1.ErrorCode == 0) //{ // var response = apiResponse1.Result; // if (response.ErrorCode == 0) // { // dashboard.TotalLenders = response.Result.Count(m => m.ProfileTypeId == (int)ProfileTypeEnum.Lender); // dashboard.TotalBorrowers = response.Result.Count(m => m.ProfileTypeId == (int)ProfileTypeEnum.Borrower); // } //} var apiResponse_ = WebApiHelper.Get(masterUrl + "loans/", "getall", _token); if (apiResponse_.ErrorCode == 0) { var response = apiResponse_.Result; if (response.ErrorCode == 0) { dashboard.TotalPendingLoans = response.Result.Count(m => m.LoanStatusId == (int)LoanStatusEnum.Pending); //dashboard.TotalRejectedLoans = response.Result.Count(m => m.LoanStatusId == (int)LoanStatusEnum.Pending); dashboard.TotalAcceptedLoans = response.Result.Count(m => m.LoanStatusId == (int)LoanStatusEnum.Active); } } var apiResponse_2 = WebApiHelper.Get(masterUrl + "loans/", "loanrequestapplications", _token); if (apiResponse_2.ErrorCode == 0) { var response = apiResponse_2.Result; if (response.ErrorCode == 0) { dashboard.LoanRequestApplications = response.Result.Count(m => m.LoanRequestStatusId == (int)LoanRequestStatusEnum.New); } } var helperResponse = WebApiHelper.Get(masterUrl + "manageCash/", "WithdrawalRequests", _token); if (helperResponse.ErrorCode == 0) { var response = helperResponse.Result; if (response.ErrorCode == 0) { dashboard.NewWidthdrawalRequests = response.Result.Count(m => m.Status == (int)CashWithdrawalEnum.Pending); } } return dashboard; } } }