using _0_Framework.Application; using _0_Framework.Domain.CustomizeCheckoutShared.Enums; using CompanyManagment.App.Contracts.Loan; using Microsoft.AspNetCore.Mvc; using ServiceHost.BaseControllers; namespace ServiceHost.Areas.Client.Controllers; public class LoanController: ClientBaseController { private readonly ILoanApplication _loanApplication; private readonly long _workshopId; public LoanController(ILoanApplication loanApplication, IAuthHelper authHelper) { _loanApplication = loanApplication; _workshopId= authHelper.GetWorkshopId(); } [HttpGet] public ActionResult GetList(LoanSearchViewModel searchModel) { searchModel.WorkshopId = _workshopId; var loans = _loanApplication.GetSearchListAsGrouped(searchModel); return loans; } [HttpGet("{id}")] public async Task> GetDetails(long id) { var loan = await _loanApplication.GetDetails(id); return loan; } [HttpPost] public ActionResult Create([FromBody] CreateLoanViewModel command) { command.WorkshopId = _workshopId; var result = _loanApplication.Create(command); return result; } [HttpGet("create/installments")] public ActionResult> CalculateLoanInstallment(string amount, int installmentCount, string loanStartDate, bool getRounded) { var installments = _loanApplication.CalculateLoanInstallment(amount, installmentCount, loanStartDate, getRounded); return installments; } [HttpDelete("{id}")] public ActionResult Remove(long id) { var result = _loanApplication.Remove(id); return result; } }