using BuddyFinance.Admin.Areas.Admin.Models; using BuddyFinance.Admin.Controllers; using BuddyFinance.Admin.Models; using BuddyFinance.Common.Concepts; using BuddyFinance.Common.Integration; using BuddyFinance.Integration.Models.ManageCash; using BuddyFinance.Integration.Models.Profiles; using BuddyFinance.Integration.Models.Transactions; using Microsoft.AspNetCore.Mvc; using Microsoft.Extensions.Configuration; using System.Collections.Generic; using BuddyFinance.Common.Encryption; namespace BuddyFinance.Admin.Areas.Admin.Controllers { [Area("Admin")] public class ManageCashController : BaseController { private string masterUrl; private string masterUrlProfile; private string masterUrlTx; public ManageCashController(IConfiguration configuration, BuddyFinanceDbContext dbContext) : base(configuration, dbContext) { masterUrl = $"{Configuration.GetValue("apiRootUrl", "")}managecash/"; masterUrlProfile = $"{Configuration.GetValue("apiRootUrl", "")}profiles/"; masterUrlTx = $"{Configuration.GetValue("apiRootUrl", "")}transactions/"; } public IActionResult Index() { return View(); } public IActionResult Withdrawals() { var model = new List(); var apiResponse = WebApiHelper.Get(masterUrl, "withdrawals", _token); if (apiResponse.ErrorCode == 0) { if (apiResponse.Result.ErrorCode == 0) { model = apiResponse.Result.Result; } else { ViewData["Message"] = $"could not load cash withdrawal history. {apiResponse.Result.ErrorMessage}"; } } else { ViewData["Message"] = $"could not load cash withdrawal history. {apiResponse.ErrorMessage}"; } ViewBag.CurrentUser = SessionManager.Current.CurrentUser._UserId; return View(model); } public IActionResult Deposits() { var model = new List(); var apiResponse = WebApiHelper.Get(masterUrl, "deposits", _token); if (apiResponse.ErrorCode == 0) { if (apiResponse.Result.ErrorCode == 0) { model = apiResponse.Result.Result; } else { ViewData["Message"] = $"could not load cash deposit history. {apiResponse.Result.ErrorMessage}"; } } else { ViewData["Message"] = $"could not load cash deposit history. {apiResponse.ErrorMessage}"; } return View(model); } public IActionResult Deposit(int profileId, string name = "", double availableFunds = 0) { var id_ = profileId; //var userid_ =userId; return PartialView("_Deposit", new SaveProfileCashViewModel { Id = id_, AvailableFunds = availableFunds, Name = name, UserId = SessionManager.Current.CurrentUser._UserId }); } public IActionResult Buddy() { var model = new BuddyFinanceViewModel(); var message = ""; //BuddyFinance Profile var apiResponse = WebApiHelper.Get(masterUrlProfile, Constants.BuddyFinanceProfileId.ToString(), _token); if (apiResponse.ErrorCode == 0) { var result = apiResponse.Result; if (result.ErrorCode == 0) { model.Profile = result.Result; } else { message += $"could not load profile data.{apiResponse.ErrorMessage}"; } } else { message += $"could not load profile data.{apiResponse.ErrorMessage}"; } //BuddyFinance TX history var apiResponse_ = WebApiHelper.Get(masterUrlTx, "GetTransactions?profileId=" + Constants.BuddyFinanceProfileId, _token); if (apiResponse_.ErrorCode == 0) { if (apiResponse_.Result.ErrorCode == 0) { model.TransactionHistory = apiResponse_.Result.Result; } else { message += $"could not load buddy finance transaction history. {apiResponse.Result.ErrorMessage}"; } } else { message += $"could not load buddy finance transaction history. {apiResponse.ErrorMessage}"; } if (message != "") ViewData["Message"] = message; return View(model); } public IActionResult ManualDeductions(string _key) { var model = new List(); var action = string.IsNullOrWhiteSpace(_key) ? "manualdeductions" : "manualdeductions?profileId=" + _key.ToDecryptedInt(); var apiResponse = WebApiHelper.Get(masterUrl, action, _token); if (apiResponse.ErrorCode == 0) { if (apiResponse.Result.ErrorCode == 0) { model = apiResponse.Result.Result; } else { ViewData["Message"] = $"could not load manual deductions history. {apiResponse.Result.ErrorMessage}"; } } else { ViewData["Message"] = $"could not load manual deductions history. {apiResponse.ErrorMessage}"; } return View(model); } public IActionResult ManualDeduction(int profileId, int? id = null, double availableFunds = 0) { var model = new ManualDeductionViewModel { Id = id.GetValueOrDefault(), ProfileId = profileId, AvailableFunds = availableFunds, UserId = (int)SessionManager.Current?.CurrentUser.UserId }; return PartialView("_ManualDeduction", model); } } }