Files
Backend-Api/ServiceHost/Areas/AdminNew/Pages/Company/WorkFlow/EmployeesDocuments.cshtml.cs
2025-05-05 18:09:53 +03:30

267 lines
9.1 KiB
C#

using System.Runtime.InteropServices.JavaScript;
using _0_Framework.Application;
using AccountManagement.Application.Contracts.Media;
using Company.Domain.WorkshopAccountAgg;
using CompanyManagment.App.Contracts.Employee;
using CompanyManagment.App.Contracts.EmployeeDocuments;
using CompanyManagment.App.Contracts.Error;
using CompanyManagment.App.Contracts.Workshop;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.RazorPages;
using WorkFlow.Application.Contracts.AdminWorkFlow;
namespace ServiceHost.Areas.AdminNew.Pages.Company.WorkFlow
{
[Authorize]
public class EmployeesDocumentsModel : PageModel
{
private readonly IWorkshopApplication _workshopApplication;
private readonly IEmployeeDocumentsApplication _employeeDocumentsApplication;
private readonly IAdminWorkFlowApplication _adminWorkFlowApplication;
private readonly IWorkshopAccountRepository _workshopAccountRepository;
private readonly IMediaApplication _mediaApplication;
private readonly IAuthHelper _authHelper;
private long _roleId;
public EmployeesDocumentsModel(IAdminWorkFlowApplication adminWorkFlowApplication,
IWorkshopApplication workshopApplication, IEmployeeDocumentsApplication employeeDocumentsApplication,
IWorkshopAccountRepository workshopAccountRepository, IAuthHelper authHelper,
IMediaApplication mediaApplication)
{
_adminWorkFlowApplication = adminWorkFlowApplication;
_workshopApplication = workshopApplication;
_employeeDocumentsApplication = employeeDocumentsApplication;
_workshopAccountRepository = workshopAccountRepository;
_authHelper = authHelper;
_mediaApplication = mediaApplication;
_roleId = authHelper.CurrentAccountInfo().RoleId;
}
public void OnGet()
{
}
public IActionResult OnGetWorkshopsWithDocumentsAwaitingUploadAjax()
{
var accountId = _authHelper.CurrentAccountId();
var accountWorkshops = _workshopAccountRepository.GetList(accountId).Select(x => x.WorkshopId).ToList();
var resultData = _adminWorkFlowApplication.GetWorkshopsWithDocumentsAwaitingUploadForAdmin(accountWorkshops);
return new JsonResult(new
{
success = true,
data = resultData
});
}
public IActionResult OnGetByWorkshopIdWithItemsForAdminWorkFlow(long workshopId)
{
var resultData = _employeeDocumentsApplication.GetByWorkshopIdWithItemsForAdminWorkFlow(workshopId);
return new JsonResult(new
{
success = true,
data = resultData
});
}
public async Task<IActionResult> OnGetClientRejectedDocumentWorkshopsForAdmin()
{
var accountId = _authHelper.CurrentAccountId();
var accountWorkshops = _workshopAccountRepository.GetList(accountId).Select(x => x.WorkshopId).ToList();
var resultData = await _employeeDocumentsApplication.GetClientRejectedDocumentWorkshopsForAdmin(accountWorkshops,_roleId);
return new JsonResult(new
{
success = true,
data = resultData
});
}
public async Task<IActionResult> OnGetClientRejectedDocumentByWorkshopIdForAdmin(long workshopId)
{
var resultData = await _employeeDocumentsApplication.GetClientRejectedDocumentByWorkshopIdForAdmin(workshopId);
return new JsonResult(new
{
success = true,
data = resultData
});
}
public async Task<IActionResult> OnGetCreatedEmployeesWorkshopDocumentForAdmin()
{
var accountId = _authHelper.CurrentAccountId();
var accountWorkshops = _workshopAccountRepository.GetList(accountId).Select(x => x.WorkshopId).ToList();
var resultData = await _employeeDocumentsApplication.GetCreatedEmployeesWorkshopDocumentForAdmin(accountWorkshops, _roleId);
return new JsonResult(new
{
success = true,
data = resultData
});
}
public async Task<IActionResult> OnGetCreatedEmployeesDocumentByWorkshopIdForAdmin(long workshopId)
{
var resultData = await _employeeDocumentsApplication.GetCreatedEmployeesDocumentByWorkshopIdForAdmin(workshopId);
return new JsonResult(new
{
success = true,
data = resultData
});
}
public async Task<IActionResult> OnGetWorkshopDocumentRejectedForAdmin()
{
var accountId = _authHelper.CurrentAccountId();
var accountWorkshops = _workshopAccountRepository.GetList(accountId).Select(x => x.WorkshopId).ToList();
var resultData =
await _employeeDocumentsApplication.GetWorkshopDocumentRejectedForAdmin(accountWorkshops,
_roleId);
return new JsonResult(new
{
success = true,
data = resultData
});
}
public async Task<IActionResult> OnGetGetRejectedItemsByWorkshopIdAndRoleForAdminWorkFlow(long workshopId)
{
var resultData =
await _employeeDocumentsApplication
.GetRejectedItemsByWorkshopIdAndRoleForAdminWorkFlow(workshopId, _roleId);
return new JsonResult(new
{
success = true,
data = resultData
});
}
public async Task<IActionResult> OnGetCountWorkFlowUploadDocument()
{
var accountId = _authHelper.CurrentAccountId();
var accountWorkshops = _workshopAccountRepository.GetList(accountId).Select(x => x.WorkshopId).ToList();
var resultDataWorkshopDocumentRejectedForAdmin = await _employeeDocumentsApplication.GetWorkshopDocumentRejectedForAdmin(accountWorkshops, _roleId);
var resultDataCreatedEmployeesWorkshopDocumentForAdmin = await _employeeDocumentsApplication.GetCreatedEmployeesWorkshopDocumentForAdmin(accountWorkshops, _roleId);
var resultCountClientRejectedDocumentWorkshopsForAdmin = await _employeeDocumentsApplication.GetClientRejectedDocumentWorkshopsForAdmin(accountWorkshops,_roleId);
return new JsonResult(new
{
WorkshopDocumentRejectedForAdmin = resultDataWorkshopDocumentRejectedForAdmin.Count,
CreatedEmployeesWorkshopDocumentForAdmin = resultDataCreatedEmployeesWorkshopDocumentForAdmin.Count,
ClientRejectedDocumentWorkshopsForAdmin = resultCountClientRejectedDocumentWorkshopsForAdmin.Count
});
}
public IActionResult OnGetCreateUploadDocument(long workshopId, long employeeId)
{
var employeeDocument = _employeeDocumentsApplication.GetDetailsForAdmin(employeeId, workshopId);
return Partial("_ModalEmployeeDocuments/ModalUploadDocument", employeeDocument);
}
public IActionResult OnPostCreateUploadDocument(AddEmployeeDocumentItem command)
{
var result = _employeeDocumentsApplication.AddEmployeeDocumentItemForClient(command);
var employeeDocument = _employeeDocumentsApplication.GetDetailsForAdmin(command.EmployeeId, command.WorkshopId);
return new JsonResult(new
{
isSuccedded = result.IsSuccedded,
message = result.Message,
imageSrc = employeeDocument
});
}
public IActionResult OnPostRemoveEmployeeDocumentByLabel(long workshopId, long employeeId, DocumentItemLabel label)
{
var result = _employeeDocumentsApplication.RemoveClientDocumentItemsByAdminTemp(workshopId, employeeId, label);
return new JsonResult(new
{
isSuccedded = result.IsSuccedded,
message = result.Message
});
}
public IActionResult OnPostRemoveClientEmployeeDocumentItemsByLabels(long workshopId, long employeeId, List<DocumentItemLabel> labels)
{
var result = _employeeDocumentsApplication.RemoveClientDocumentItemsByAdmin(workshopId, employeeId, labels);
return new JsonResult(new
{
isSuccedded = result.IsSuccedded,
message = result.Message
});
}
public IActionResult OnPostSaveSubmit(SubmitEmployeeDocuments cmd)
{
var result = _employeeDocumentsApplication.SubmitDocumentItemsByAdminInWorkFlow(cmd);
return new JsonResult(new
{
isSuccedded = result.IsSuccedded,
message = result.Message,
});
}
public IActionResult OnGetShowPicture(string filePath)
{
if (string.IsNullOrEmpty(filePath))
return NotFound();
if (!System.IO.File.Exists(filePath))
return NotFound();
var contentType = Tools.GetContentTypeImage(Path.GetExtension(filePath));
return PhysicalFile(filePath, contentType);
}
public IActionResult OnPostCancelOperation(long workshopId, long employeeId)
{
var result = _employeeDocumentsApplication.DeleteUnsubmittedItems(workshopId, employeeId);
return new JsonResult(new
{
success = result.IsSuccedded,
message = result.Message
});
}
public async Task<IActionResult> OnGetEditEmployeeModal(long employeeId, long workshopId, long mediaId)
{
var media = _mediaApplication.Get(mediaId);
var command = await _adminWorkFlowApplication.GetEmployeeEditInEmployeeDocumentWorkFlow(employeeId, workshopId);
command.Media = media;
return Partial("_ModalEmployeeDocuments/ModalEmployeeEdit", command);
}
public async Task<IActionResult> OnPostEditEmployeeModal(EditEmployeeInEmployeeDocument command)
{
var result = await _adminWorkFlowApplication.EditEmployeeInEmployeeDocumentWorkFlow(command);
return new JsonResult(new
{
success = result.IsSuccedded,
message = result.Message
});
}
public IActionResult OnPostGroupSave(long workshopId, long employeeId, List<AddEmployeeDocumentItem> command)
{
var result = _employeeDocumentsApplication.AddRangeEmployeeDocumentItemsByAdmin(workshopId, employeeId, command);
return new JsonResult(new
{
success = result.IsSuccedded,
message = result.Message
});
}
}
}