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;
}
///
/// لیست کارپوشه ثبت نام
///
///
[HttpGet]
public async Task>> GetList()
{
var result = await _institutionContractApplication.RegistrationWorkflowMainList();
return result;
}
[HttpGet("items/{institutionContractId}")]
public async Task>> RegistrationWorkflowItems(
long institutionContractId)
{
var result = await _institutionContractApplication.RegistrationWorkflowItems(institutionContractId);
return result;
}
[HttpPost("create-employer")]
public async Task> CreateEmployerForWorkshopDetails([FromBody]CreateEmployerWorkflowRegistration command)
{
var result = await _employerApplication.CreateWorkflowRegistration(command);
return result;
}
[HttpGet("create-workshop")]
public async Task> GetWorkshopDetails(long workshopDetailsId)
{
var res =await _institutionContractApplication.GetWorkshopInitialDetails(workshopDetailsId);
return res;
}
[HttpPost("create-workshop")]
public async Task> CreateWorkshop(
[FromBody]CreateWorkshopWorkflowRegistration command)
{
var result = await _workshopApplication.CreateWorkshopWorkflowRegistration(command);
return result;
}
[HttpPost("auth-employer")]
public async Task>> AuthenticateEmployer( [FromBody]AuthenticateEmployerWorkflowRequest command)
{
var result = await _employerApplication.AuthenticateEmployer(command.NationalCode, command.DateOfBirth, command.Mobile);
return result;
}
[HttpPut("edit-employer")]
public async Task> EditEmployerForWorkshopDetails([FromBody]EditEmployerWorkflowRegistration command)
{
var result = await _employerApplication.EditWorkflowRegistration(command);
return result;
}
[HttpGet("edit-employer/{employerId}/{institutionWorkshopDetailsId}")]
public async Task> GetEmployerForEdit(long employerId, long institutionWorkshopDetailsId)
{
var result = await _employerApplication.GetWorkflowRegistrationForEdit(employerId, institutionWorkshopDetailsId);
return result;
}
///
/// حذف کارفرما از گردش کار ثبت نام
///
/// شناسه کارفرما
/// شناسه جزئیات کارگاه موسسه
///
[HttpDelete("delete-employer/{employerId}/{institutionWorkshopDetailsId}")]
public async Task> 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; }
}
}