using BuddyFinance.Admin.Areas.Admin.Models; using BuddyFinance.Admin.Controllers; using BuddyFinance.Admin.Models; using BuddyFinance.Common.Integration; using BuddyFinance.Integration; using BuddyFinance.Integration.Models.Enums; using BuddyFinance.Integration.Models.ManageCash; using BuddyFinance.Integration.Models.Profiles; using Microsoft.AspNetCore.Mvc; using Microsoft.Extensions.Configuration; using System.Collections.Generic; namespace BuddyFinance.Admin.Areas.Admin.Controllers { [Area("Admin")] public class CashWithdrawalsController : BaseController { public CashWithdrawalsController(IConfiguration configuration, BuddyFinanceDbContext dbContext) : base(configuration, dbContext) { masterUrl = $"{Configuration.GetValue("apiRootUrl", "")}managecash/"; masterUrlProfile = $"{Configuration.GetValue("apiRootUrl", "")}profiles/"; } private string masterUrl; private string masterUrlProfile; //tumelo : need api for all cash withdrawals public IActionResult Index() { var cashwithdrawal = new List(); var helperResponse = WebApiHelper.Get(masterUrl, "WithdrawalRequests", SessionManager.Current?.CurrentUser.AccessToken); if (helperResponse.ErrorCode == 0) { var apiResponse = helperResponse.Result; if (apiResponse.ErrorCode == 0) cashwithdrawal = apiResponse.Result; else ViewBag.Message = "Could not get loan offers"; } else ViewBag.Message = "Could not get loan offers"; return View(cashwithdrawal); } //public IActionResult Accept(int id) //{ // var success = false; // var helperresponse = WebApiHelper.Get(masterUrl, "AcceptCashWithdrawal"); // if(helperresponse.ErrorCode==0) // { // var apiResponse = helperresponse.Result; // if (apiResponse.ErrorCode == 0) // success = apiResponse.Result; // else // ViewBag.Message = apiResponse.ErrorMessage; //"Withdrawal request can not be found."; // } // else // ViewBag.Message = "Could not get loan offers"; // return View(cashwithdraw); //} //Accept cashwithdrawal [HttpPost] [ActionName("Accept")] public IActionResult AcceptConfimerd(int id) { var success = false; var helperresponse = WebApiHelper.Post(masterUrl, $"AcceptCashWithdrawal/{id}", null, SessionManager.Current?.CurrentUser.AccessToken); if (helperresponse.ErrorCode == 0) { var apiResponse = helperresponse.Result; if (apiResponse.ErrorCode == 0) success = apiResponse.Result; else ViewBag.Message = apiResponse.ErrorMessage; //"Withdrawal request can not be found."; } else ViewBag.Message = "Could not get loan offers"; return Json(success); } [HttpGet] public IActionResult SaveProfileCash(int id, double availableFunds = 0) { return PartialView(new SaveProfileCashViewModel { Id = id, AvailableFunds = availableFunds }); } //deposit funds into lender profile [HttpPost] public IActionResult SaveProfileCash(SaveProfileCashViewModel model) { if (!ModelState.IsValid) return PartialView(model); var success = false; var helperresponse = WebApiHelper.Post(masterUrl, $"deposit?id={model.Id}&amount={model.Amount}", null, SessionManager.Current?.CurrentUser.AccessToken); if (helperresponse.ErrorCode == 0) { var apiResponse = helperresponse.Result; if (apiResponse.ErrorCode == 0) success = apiResponse.Result; else ModelState.AddModelError("", apiResponse.ErrorMessage); } else ModelState.AddModelError("", helperresponse.ErrorMessage); if (success) return Json(new { success}); else return PartialView(model); // return View("~/Admin/Views/CashWithdrawals/_Managecash.cshtml"); } //List of all lenders public IActionResult Lenders() { var lenders = new List(); //profileTypeId={profileTypeId} var helperresponse = WebApiHelper.Get(masterUrlProfile, $"profileTypeId={(int)ProfileTypeEnum.Lender}", SessionManager.Current?.CurrentUser.AccessToken); if (helperresponse.ErrorCode == 0) { var apiResponse = helperresponse.Result; if (apiResponse.ErrorCode == 0) lenders = apiResponse.Result; else ViewBag.Message = apiResponse.ErrorMessage; ; } else ViewBag.Message = "Could not load Profiles"; return View(lenders); } } }