Files
Backend-Api/ServiceHost/Areas/Admin/Controllers/RegistrationWorkflowController.cs
2026-01-04 12:00:34 +03:30

108 lines
4.7 KiB
C#

using _0_Framework.Application;
using Company.Domain.InstitutionContractAgg;
using CompanyManagment.App.Contracts.AdminMonthlyOverview;
using CompanyManagment.App.Contracts.Employer;
using CompanyManagment.App.Contracts.InstitutionContract;
using CompanyManagment.App.Contracts.TemporaryClientRegistration;
using CompanyManagment.App.Contracts.Workshop;
using Microsoft.AspNetCore.Mvc;
using ServiceHost.BaseControllers;
namespace ServiceHost.Areas.Admin.Controllers;
public class RegistrationWorkflowController : AdminBaseController
{
private readonly ITemporaryClientRegistrationApplication _temporaryClientRegistrationApplication;
private readonly IInstitutionContractApplication _institutionContractApplication;
private readonly IEmployerApplication _employerApplication;
private readonly IWorkshopApplication _workshopApplication;
public RegistrationWorkflowController(ITemporaryClientRegistrationApplication temporaryClientRegistrationApplication,
IInstitutionContractApplication institutionContractApplication, IEmployerApplication employerApplication, IWorkshopApplication workshopApplication)
{
_temporaryClientRegistrationApplication = temporaryClientRegistrationApplication;
_institutionContractApplication = institutionContractApplication;
_employerApplication = employerApplication;
_workshopApplication = workshopApplication;
}
/// <summary>
/// لیست کارپوشه ثبت نام
/// </summary>
/// <returns></returns>
[HttpGet]
public async Task<ActionResult<List<RegistrationWorkflowMainListViewModel>>> GetList()
{
var result = await _institutionContractApplication.RegistrationWorkflowMainList();
return result;
}
[HttpGet("items/{institutionContractId}")]
public async Task<ActionResult<List<RegistrationWorkflowItemsViewModel>>> RegistrationWorkflowItems(
long institutionContractId)
{
var result = await _institutionContractApplication.RegistrationWorkflowItems(institutionContractId);
return result;
}
[HttpPost("create-employer")]
public async Task<ActionResult<OperationResult>> CreateEmployerForWorkshopDetails([FromBody]CreateEmployerWorkflowRegistration command)
{
var result = await _employerApplication.CreateWorkflowRegistration(command);
return result;
}
[HttpGet("create-workshop")]
public async Task<ActionResult<InstitutionContractWorkshopDetailViewModel>> GetWorkshopDetails(long workshopDetailsId)
{
var res =await _institutionContractApplication.GetWorkshopInitialDetails(workshopDetailsId);
return res;
}
[HttpPost("create-workshop")]
public async Task<ActionResult<OperationResult>> CreateWorkshop(
[FromBody]CreateWorkshopWorkflowRegistration command)
{
var result = await _workshopApplication.CreateWorkshopWorkflowRegistration(command);
return result;
}
[HttpPost("auth-employer")]
public async Task<ActionResult<OperationResult<AuthenticateUserViewModel>>> AuthenticateEmployer( [FromBody]AuthenticateEmployerWorkflowRequest command)
{
var result = await _employerApplication.AuthenticateEmployer(command.NationalCode, command.DateOfBirth, command.Mobile);
return result;
}
[HttpPut("edit-employer")]
public async Task<ActionResult<OperationResult>> EditEmployerForWorkshopDetails([FromBody]EditEmployerWorkflowRegistration command)
{
var result = await _employerApplication.EditWorkflowRegistration(command);
return result;
}
[HttpGet("edit-employer/{employerId}/{institutionWorkshopDetailsId}")]
public async Task<ActionResult<EditEmployerWorkflowRegistration>> GetEmployerForEdit(long employerId, long institutionWorkshopDetailsId)
{
var result = await _employerApplication.GetWorkflowRegistrationForEdit(employerId, institutionWorkshopDetailsId);
return result;
}
/// <summary>
/// حذف کارفرما از گردش کار ثبت نام
/// </summary>
/// <param name="employerId">شناسه کارفرما</param>
/// <param name="institutionWorkshopDetailsId">شناسه جزئیات کارگاه موسسه</param>
/// <returns></returns>
[HttpDelete("delete-employer/{employerId}/{institutionWorkshopDetailsId}")]
public async Task<ActionResult<OperationResult>> DeleteEmployerWorkflowRegistration(long employerId, long institutionWorkshopDetailsId)
{
var result = await _employerApplication.DeleteWorkflowRegistration(employerId, institutionWorkshopDetailsId);
return result;
}
}
public class AuthenticateEmployerWorkflowRequest
{
public string NationalCode { get; set; }
public string DateOfBirth { get; set; }
public string Mobile { get; set; }
}