using System.Diagnostics; using _0_Framework.Application; using CompanyManagment.App.Contracts.PersonalContractingParty; using Microsoft.AspNetCore.Mvc; using ServiceHost.BaseControllers; namespace ServiceHost.Areas.Admin.Controllers; public class ContractingPartyController : AdminBaseController { private readonly IPersonalContractingPartyApp _contractingPartyApplication; public ContractingPartyController(IPersonalContractingPartyApp contractingPartyApplication) { _contractingPartyApplication = contractingPartyApplication; } /// /// لیست طرف حساب /// /// /// [HttpGet] public async Task>> Get([FromQuery] ContractingPartyGetListSearchModel searchModel) { var watch = new Stopwatch(); watch.Start(); var result = await _contractingPartyApplication.GetList(searchModel); Console.WriteLine(watch.Elapsed); return result.ToList(); } /// /// جزئیات طرف حساب حقیقی /// /// /// [HttpGet("real/{id}")] public async Task> GetDetailsReal(long id) { var result = await _contractingPartyApplication.GetRealDetails(id); return result; } /// /// جزئیات طرف حساب حقوقی /// /// /// [HttpGet("legal/{id}")] public async Task> GetDetailsLegal(long id) { var result = await _contractingPartyApplication.GetLegalDetails(id); return result; } /// /// ایجاد طرف حساب حقیقی /// /// /// [HttpPost("real")] public async Task> CreateReal([FromBody] CreateRealContractingParty command) { var result = await _contractingPartyApplication.CreateReal(command); return result; } /// /// ایجاد طرف حساب حقوقی /// /// /// [HttpPost("legal")] public async Task> CreateLegal([FromBody] CreateLegalContractingParty command) { var result = await _contractingPartyApplication.CreateLegal(command); return result; } /// /// ویرایش طرف حساب حقیقی /// /// /// [HttpPut("real")] public ActionResult EditReal([FromBody] EditRealContractingParty command) { var result = _contractingPartyApplication.EditRealApi(command); return result; } /// /// ویرایش طرف حساب حقوقی /// /// /// [HttpPut("legal")] public ActionResult EditLegal([FromBody] EditLegalContractingParty command) { var result = _contractingPartyApplication.EditLegal(command); return result; } /// /// چک کردن بلاک بودن طرف حساب با آیدی کارفرما /// /// آیدی کارفرما /// true - false - NotFound [HttpGet("is_block/{employerId}")] public ActionResult IsBlockByEmployerId(long employerId) { var result = _contractingPartyApplication.IsBlockByEmployerId(employerId); return result; } /// /// گرفتن آخرین کد بایگانی کارگاه /// /// [HttpGet("last_archive_code")] public ActionResult GetLastArchiveCodeByContractingPartyId() { var data = _contractingPartyApplication.GetLastArchiveCode(); return data; } /// /// سلکت لیست طرف حساب برای جستجو /// /// [HttpGet("selectList")] public async Task>> GetSelectList(string search, long id) { return await _contractingPartyApplication.GetSelectList(search, id); } /// /// لیست شناسه ملی یا شماره ملی برای جستجوی /// /// [HttpGet("national_Code_Select_list")] public async Task>> GetNationalCodeOrNationalId() { return await _contractingPartyApplication.GetNationalCodeOrNationalId(); } /// /// حذف طرف حساب. درصورت داشتن قرارداد مالی یا داشتن کارفرما، طرف حساب غیرفعال میشود /// /// /// [HttpDelete] public async Task> DeleteContractingParty(long id) { var operationResult = await _contractingPartyApplication.Delete(id); return operationResult; } }