using _0_Framework.Application; using CompanyManagment.App.Contracts.CustomizeWorkshopSettings; using CompanyManagment.App.Contracts.Employee; using CompanyManagment.App.Contracts.Workshop; using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc.RazorPages; using System.Security.Claims; namespace ServiceHost.Areas.AdminNew.Pages.Company.RollCall { public class GroupingModel : PageModel { private readonly IPasswordHasher _passwordHasher; private readonly IWorkshopApplication _workshopApplication; private readonly IEmployeeApplication _employeeApplication; private readonly ICustomizeWorkshopSettingsApplication _customizeWorkshopSettingsApplication; private readonly IHttpContextAccessor _contextAccessor; private readonly IAuthHelper _authHelper; public long WorkshopId; public string WorkshopFullName; public CustomizeWorkshopSettingsViewModel RollCallWorkshopSettings; public GroupingModel(IPasswordHasher passwordHasher, IWorkshopApplication workshopApplication, ICustomizeWorkshopSettingsApplication rollCallWorkshopSettingsApplication, IEmployeeApplication employeeApplication, IHttpContextAccessor contextAccessor, IAuthHelper authHelper) { _passwordHasher = passwordHasher; _workshopApplication = workshopApplication; _customizeWorkshopSettingsApplication = rollCallWorkshopSettingsApplication; _employeeApplication = employeeApplication; _contextAccessor = contextAccessor; _authHelper = authHelper; } public IActionResult OnGet(long workshopId) { //if (_workshopId != 11) // return Redirect("/AdminNew/Company/RollCall"); WorkshopId = workshopId; var workshop = _workshopApplication.GetWorkshopInfo(workshopId); WorkshopFullName = workshop.WorkshopFullName; var account = new AuthViewModel() { WorkshopList = [ new WorkshopClaim { Id = workshop.Id, Name = workshop.WorkshopFullName, PersonnelCount = workshop.PersonnelCount, Slug = workshop.Slug } ] }; RollCallWorkshopSettings = _customizeWorkshopSettingsApplication.GetWorkshopSettingsByWorkshopId(workshopId, account); if (RollCallWorkshopSettings.Id == 0) { return Redirect("/AdminNew/Company/RollCall"); } return Page(); } public IActionResult OnGetWorkshopSettingsDataAjax(long workshopId) { //var account = _authHelper.CurrentAccountInfo(); var workshop = _workshopApplication.GetWorkshopInfo(workshopId); var account = new AuthViewModel() { WorkshopList = [ new WorkshopClaim { Id = workshop.Id, Name = workshop.WorkshopFullName, PersonnelCount = workshop.PersonnelCount, Slug = workshop.Slug } ] }; var result = _customizeWorkshopSettingsApplication.GetWorkshopSettingsByWorkshopId(workshopId, account); return new JsonResult(new { isSuccedded = true, data = result }); } public IActionResult OnGetEmployeesGroupAjax(long groupId) { var result = _customizeWorkshopSettingsApplication.GetEmployeeSettingsByGroupSettingsId(groupId); return new JsonResult(new { success = true, data = result }); } public IActionResult OnGetCreateGroup(long workshopSettingId) { var command = new CreateCustomizeWorkshopGroupSettings { CustomizeWorkshopSettingId = workshopSettingId }; return Partial("ModalCreateGroup", command); } public IActionResult OnPostCreateGroup(CreateCustomizeWorkshopGroupSettings command) { command.Salary = "0"; OperationResult result = _customizeWorkshopSettingsApplication.CreateGroupSettingsByRollCallWorkshopSettingId(command); return new JsonResult(new { success = result.IsSuccedded, message = result.Message }); } public IActionResult OnGetEditGroup(long groupId) { var command = _customizeWorkshopSettingsApplication.GetCustomizeWorkshopGroupSettingsDetails(groupId); command.IsShiftChanged = _customizeWorkshopSettingsApplication .GetEmployeeSettingsByGroupSettingsId(groupId) .Any(x => x.IsSettingChanged == true); return Partial("ModalEditGroup", command); } public IActionResult OnPostEditGroup(EditCustomizeWorkshopGroupSettings command) { var result = _customizeWorkshopSettingsApplication.EditSimpleRollCallGroupSetting(command); return new JsonResult(new { success = result.IsSuccedded, message = result.Message }); } public IActionResult OnGetEmployeeIsChangeList(long groupId) { var result = _customizeWorkshopSettingsApplication.GetEmployeeSettingsByGroupSettingsId(groupId) .Where(x => x.IsSettingChanged).ToList(); return new JsonResult(new { success = true, data = result }); } public IActionResult OnPostDeleteGroup(long groupId) { var result = _customizeWorkshopSettingsApplication.RemoveGroupSettings(groupId); return new JsonResult(new { success = result.IsSuccedded, message = result.Message }); } public IActionResult OnGetEmployeeGroupAjax(long rollCallWorkshopSettingId) { var result = _customizeWorkshopSettingsApplication.GetEmployeesWithoutGroup(rollCallWorkshopSettingId); return new JsonResult(new { success = true, data = result }); } public IActionResult OnGetCreateEmployee(long workshopSettingId, long groupId) { var command = new CreateCustomizeEmployeeSettings() { WorkshopSettingId = workshopSettingId, GroupId = groupId }; return Partial("ModalAddEmployeeToGroup", command); } public IActionResult OnPostCreateEmployee(CreateCustomizeEmployeeSettings command, long workshopId) { command.WorkshopId = workshopId; OperationResult result = _customizeWorkshopSettingsApplication.CreateEmployeeSettings(command); return new JsonResult(new { success = result.IsSuccedded, message = result.Message }); } public IActionResult OnPostRemoveEmployee(long employeeId, long groupId, long workshopId) { OperationResult result = _customizeWorkshopSettingsApplication.RemoveEmployeeFromRollCallWorkshopGroup(employeeId, groupId, workshopId); return new JsonResult(new { success = result.IsSuccedded, message = result.Message }); } public IActionResult OnGetEditEmployee(long groupId, List employeeId, long workshopId) { var employee = _customizeWorkshopSettingsApplication.GetEmployeeSettingsByEmployeeIdGroupSettingsId(workshopId, employeeId.First()); var command = new EditCustomizeEmployeeSettings() { Id = employee.Id, EmployeeIds = employeeId, EmployeeFullName = employee.EmployeeFullName, Salary = employee.Salary.ToMoney(), NameGroup = employee.Name, ShiftViewModel = employee.RollCallWorkshopShifts, BreakTime = employee.BreakTime, WorkshopShiftStatus = employee.WorkshopShiftStatus, IrregularShift = employee.IrregularShift }; return Partial("ModalEditEmployeeFromGroup", command); } public IActionResult OnPostChangeEditEmployee(EditCustomizeEmployeeSettings command, long workshopId) { command.WorkshopId = workshopId; OperationResult result = _customizeWorkshopSettingsApplication.EditSimpleRollCallEmployeeSetting(command); return new JsonResult(new { success = result.IsSuccedded, message = result.Message }); } // public IActionResult OnGetGroupingSetting(long groupId) // { // var command = _customizeWorkshopSettingsApplication.GetCustomizeWorkshopGroupSettingsDetails(groupId); // return Partial("ModalSettingGroup", command); //} // public IActionResult OnPostGroupingSetting(EditCustomizeWorkshopGroupSettings command) // { // command.EmployeeIds = _customizeWorkshopSettingsApplication.GetEmployeeSettingsByGroupSettingsId(command.Id).Select(x => x.EmployeeId).ToList(); // OperationResult result = _customizeWorkshopSettingsApplication.EditRollCallGroupSetting(command); // return new JsonResult(new // { // isSuccess = result.IsSuccedded, // message = result.Message // }); //} //public IActionResult OnGetGroupingEmployeeSetting(long customizeEmployeeId, List employeeId) // { // var command = _customizeWorkshopSettingsApplication.GetCustomizeEmployeeSettingsDetails(customizeEmployeeId); // command.EmployeeIds = employeeId; // return Partial("ModalSettingGroupEmployee", command); // } // public IActionResult OnPostGroupingEmployeeSetting(EditCustomizeEmployeeSettings command) // { // command.WorkshopId = _workshopId; // OperationResult result = _customizeWorkshopSettingsApplication.EditRollCallEmployeeSettings(command); // return new JsonResult(new // { // isSuccess = result.IsSuccedded, // message = result.Message // }); //} } }