using _0_Framework.Application;
using CompanyManagment.App.Contracts.ClassificationScheme;
using CompanyManagment.App.Contracts.Employee;
using CompanyManagment.App.Contracts.PaymentInstrument;
using CompanyManagment.Application;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using ServiceHost.BaseControllers;
namespace ServiceHost.Areas.Admin.Controllers;
public class ClassificationSchemeController : AdminBaseController
{
private readonly IClassificationSchemeApplication _classificationSchemeApplication;
private readonly IAuthHelper _authHelper;
public ClassificationSchemeController(IClassificationSchemeApplication classificationSchemeApplication, IAuthHelper authHelper)
{
_classificationSchemeApplication = classificationSchemeApplication;
_authHelper = authHelper;
}
#region SchemeTab
///
/// لیست طرح
///
///
///
[HttpGet]
public async Task> GetList(long workshopId)
{
var result = await _classificationSchemeApplication.GetClassificationSchemeList(workshopId);
return result;
}
///
/// ایجاد طرح
///
///
///
[HttpPost("Scheme")]
public async Task> CreateScheme([FromBody] CreateClassificationSchemeDto command)
{
var result = await _classificationSchemeApplication.CreateClassificationScheme(command);
return result;
}
///
/// دریافت اطلاعات طرح برای ویرایش
///
///
///
[HttpGet("GetSchemeToEdit")]
public async Task GetSchemeToEdit(long id)
{
var result = await _classificationSchemeApplication.GetClassificationScheme(id);
return result;
}
///
/// ویرایش طرح
///
///
///
[HttpPut("Scheme")]
public async Task> EditScheme([FromBody] EditClassificationSchemeDto command)
{
var result = await _classificationSchemeApplication.EditClassificationScheme(command);
return result;
}
///
/// چگ کردن شرایط حذف طرح
///
///
///
[HttpGet("CheckToDeleteScheme")]
public async Task CheckToDeleteScheme(long id)
{
var result = await _classificationSchemeApplication.CheckToDeleteScheme(id);
return result;
}
///
/// حذف طرح
///
///
[HttpDelete]
public async Task> DeleteScheme(long id)
{
var result = await _classificationSchemeApplication.DeleteScheme(id);
return result;
}
#endregion
#region GroupsTab
///
/// دریافت لیست گروه ها
///
///
///
[HttpGet("GetGroupList")]
public async Task> GetGroupList(long schemeId)
{
var result = await _classificationSchemeApplication.GetGroupList(schemeId);
return result;
}
///
/// دریافت لیست مشاغل گروه برای مودال افزودن و ویرایش
///
///
///
[HttpGet("GetCreateOrEditJobsData")]
public async Task GetCreateOrEditJobsData(long groupId)
{
var result = await _classificationSchemeApplication.GetCreateOrEditJobsData(groupId);
return result;
}
///
/// چک میکند که آیا امکان حذف شغل از گروه وجود دارد
///
///
///
///
[HttpGet("CheckDeleteJobFromGroup")]
public async Task> CheckDeleteJobFromGroup(long jobId, long groupId)
{
var result = await _classificationSchemeApplication.CheckIfEmployeeHasThisJob(jobId, groupId);
return result;
}
#endregion
}