Files
Backend-Api/ServiceHost/Areas/Client/Pages/Company/RollCall/Index.cshtml.cs

322 lines
13 KiB
C#

using _0_Framework.Application;
using _0_Framework.Domain.CustomizeCheckoutShared.Enums;
using AccountManagement.Application.Contracts.CameraAccount;
using CompanyManagment.App.Contracts.CustomizeWorkshopSettings;
using CompanyManagment.App.Contracts.Error;
using CompanyManagment.App.Contracts.RollCall;
using CompanyManagment.App.Contracts.RollCallEmployee;
using CompanyManagment.App.Contracts.RollCallService;
using CompanyManagment.App.Contracts.Workshop;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.RazorPages;
using System.Security.Claims;
using System.Transactions;
namespace ServiceHost.Areas.Client.Pages.Company.RollCall
{
[Authorize]
public class IndexModel : PageModel
{
private readonly IWorkshopApplication _workshopApplication;
private readonly IRollCallServiceApplication _rollCallServiceApplication;
private readonly IRollCallEmployeeApplication _rollCallEmployeeApplication;
private readonly ICustomizeWorkshopSettingsApplication _customizeWorkshopSettingsApplication;
private readonly ICameraAccountApplication _cameraAccountApplication;
private readonly IPasswordHasher _passwordHasher;
private readonly IAuthHelper _authHelper;
public string WorkshopFullName;
public bool CheckRollCallService;
public string RollCallServicePersonnelActive;
public string RollCallServiceDeadline;
public string HasCameraAccount = "false";
public string HasRollCallWorkshopSetting = "false";
public string HasRollCallCustomizeWorkshopSetting = "false";
public IndexModel(IWorkshopApplication workshopApplication, IRollCallServiceApplication rollCallServiceApplication, IRollCallEmployeeApplication rollCallEmployeeApplication, IPasswordHasher passwordHasher, ICameraAccountApplication cameraAccountApplication, IAuthHelper authHelper, ICustomizeWorkshopSettingsApplication customizeWorkshopSettingsApplication)
{
_workshopApplication = workshopApplication;
_rollCallServiceApplication = rollCallServiceApplication;
_rollCallEmployeeApplication = rollCallEmployeeApplication;
_passwordHasher = passwordHasher;
_cameraAccountApplication = cameraAccountApplication;
_authHelper = authHelper;
_customizeWorkshopSettingsApplication = customizeWorkshopSettingsApplication;
}
public IActionResult OnGet()
{
var account = _authHelper.CurrentAccountInfo();
var workshopHash = User.FindFirstValue("WorkshopSlug");
var workshopId = _passwordHasher.SlugDecrypt(workshopHash);
if (workshopId < 0)
return BadRequest();
var rollCallWorkshopSetting = _customizeWorkshopSettingsApplication.GetWorkshopSettingsByWorkshopId(workshopId, account);
HasRollCallWorkshopSetting = rollCallWorkshopSetting.ArePropertiesEqual(new CustomizeWorkshopSettingsViewModel()) ? "false" : "true";
var workshopInfo = _workshopApplication.GetWorkshopInfo(workshopId);
WorkshopFullName = workshopInfo.WorkshopFullName;
HasRollCallCustomizeWorkshopSetting = _customizeWorkshopSettingsApplication.GetWorkshopSettingsDetails(workshopId).Id == 0 ? "false" : "true";
var hasBeforeService = _rollCallServiceApplication.GetAllServiceByWorkshopId(workshopId).Any();
var rollCall = _rollCallServiceApplication.GetActiveServiceByWorkshopId(workshopId);
if (rollCall != null)
{
var accountId = _authHelper.CurrentAccountId();
var cameraAccount = _cameraAccountApplication.HasCameraAccount(workshopId, accountId);
if (cameraAccount && hasBeforeService)
HasCameraAccount = "true";
CheckRollCallService = true;
RollCallServicePersonnelActive = _rollCallEmployeeApplication.activedPerson(workshopId) > 0 ? "true" : "false";
RollCallServiceDeadline = rollCall.EndService.ToFarsi().ToFarsiDuration2();
}
else
{
HasCameraAccount = !hasBeforeService ? "true" : HasCameraAccount;
CheckRollCallService = false;
RollCallServiceDeadline = "سرویس خریداری نشده است";
}
return Page();
}
public IActionResult OnGetSaveCameraAccountAndWorkshopSetting()
{
var account = _authHelper.CurrentAccountInfo();
var accountId = _authHelper.CurrentAccountId();
var workshopHash = User.FindFirstValue("WorkshopSlug");
var workshopId = _passwordHasher.SlugDecrypt(workshopHash);
if (workshopId < 1)
return BadRequest();
var cameraAccount = _cameraAccountApplication.HasCameraAccount(workshopId, accountId);
var rollCallWorkshopSetting = _customizeWorkshopSettingsApplication.GetWorkshopSettingsByWorkshopId(workshopId, account);
var result = new AccountAndSettingViewModel()
{
HasCamera = cameraAccount,
HasGroupWorkshop = !rollCallWorkshopSetting.ArePropertiesEqual(new CustomizeWorkshopSettingsViewModel()),
CreateCameraAccount = _cameraAccountApplication.GetDetailsByWorkshop(workshopId),
CreateWorkshopSettings = _customizeWorkshopSettingsApplication.GetWorkshopSettingsDetails(workshopId),
};
return Partial("ModalCreateAccountSetting", result);
}
public IActionResult OnPostSaveCameraAccountAndWorkshopSetting(AccountAndSettingViewModel command)
{
var workshopHash = User.FindFirstValue("WorkshopSlug");
var workshopId = _passwordHasher.SlugDecrypt(workshopHash);
if (workshopId < 1)
return new JsonResult(new
{
Success = false,
message = "هیچ کارگاهی یافت نشد",
});
string finalMessage = "";
using (var transaction = new TransactionScope())
{
if (!command.HasCamera)
{
var createAccountCommand = new CreateCameraAccount()
{
WorkshopId = workshopId,
AccountId = _authHelper.CurrentAccountId(),
Username = command.CreateCameraAccount.Username,
Password = command.CreateCameraAccount.Password,
RePassword = command.CreateCameraAccount.RePassword,
WorkshopName = _workshopApplication.GetDetails(workshopId).WorkshopFullName,
IsActiveString = "true",
};
var result = _cameraAccountApplication.Create(createAccountCommand);
finalMessage = result.Message;
if (!result.IsSuccedded)
{
return new JsonResult(new
{
Success = false,
message = finalMessage,
});
}
}
if (!command.HasGroupWorkshop)
{
var result = _customizeWorkshopSettingsApplication.CreateWorkshopSettings(command.CreateWorkshopSettings);
finalMessage = result.Message;
if (!result.IsSuccedded)
{
return new JsonResult(new
{
Success = false,
message = finalMessage,
});
}
}
transaction.Complete();
}
return new JsonResult(new
{
Success = true,
message = finalMessage,
});
}
public IActionResult OnGetCheckAccount(string username)
{
var result = _cameraAccountApplication.CheckUsername(username);
return new JsonResult(new
{
Success = result.IsSuccedded,
message = result.IsSuccedded ? "نام کاربری با مورد تاییداست" : result.Message,
});
}
public IActionResult OnGetModalSettingRollCall()
{
var workshopHash = User.FindFirstValue("WorkshopSlug");
var workshopId = _passwordHasher.SlugDecrypt(workshopHash);
if (workshopId < 1)
return BadRequest();
if (workshopId != 11)
{
var resultError = new ErrorViewModel()
{
Message = "شما مجاز به این بخش نیستید."
};
return Partial("../Error/_ErrorModal", resultError);
}
var command = _customizeWorkshopSettingsApplication.GetWorkshopSettingsDetails(workshopId);
if (command.Id == 0)
{
var resultError = new ErrorViewModel()
{
Message = "شما تنظیماتی مربوط به کارگاه را تنظیم نکرده اید."
};
return Partial("../Error/_ErrorModal", resultError);
}
return Partial("ModalSettingRollCall", command);
}
public IActionResult OnPostSaveCustomWorkshopSettings(EditCustomizeWorkshopSettings command, bool isAllGroupChanged)
{
//Todo:Vafa!!!
var result = _customizeWorkshopSettingsApplication.EditWorkshopSetting(command, isAllGroupChanged);
return new JsonResult(new
{
isSuccess = result.IsSuccedded,
message = result.Message,
});
}
public IActionResult OnGetEditSettingWorkTime()
{
var workshopHash = User.FindFirstValue("WorkshopSlug");
var workshopId = _passwordHasher.SlugDecrypt(workshopHash);
if (workshopId < 1)
return BadRequest();
var command = _customizeWorkshopSettingsApplication.GetSimpleWorkshopSettings(workshopId);
if (command.Id == 0)
{
var resultError = new ErrorViewModel()
{
Message = "شما تنظیماتی مربوط به کارگاه را تنظیم نکرده اید."
};
return Partial("../Error/_ErrorModal", resultError);
}
return Partial("ModalSettingWorkTime", command);
}
public IActionResult OnGetGroupListAndEmployeeList(long customizeWorkshopSettingsId)
{
var resultData = _customizeWorkshopSettingsApplication.GetShiftChangesGroupAndEmployees(customizeWorkshopSettingsId);
var success = resultData.Any();
return new JsonResult(new
{
success = success,
data = resultData,
});
}
public IActionResult OnPostEditSettingWorkTime(List<CustomizeWorkshopShiftViewModel> shiftViewModels,
long customizeWorkshopSettingsId, WorkshopShiftStatus workshopShiftStatus,FridayWork fridayWork,HolidayWork holidayWork)
{
var workshopHash = User.FindFirstValue("WorkshopSlug");
var workshopId = _passwordHasher.SlugDecrypt(workshopHash);
if (workshopId < 1)
return new JsonResult(new
{
success = false,
message = "هیچ کارگاهی یافت نشد!",
});
//Todo:Vafa!!
//Todo: Vafa : to in ja bool replaceChange group ro ezafe kon. hatman ham workshopShiftStatus az front pas bede be in.
var result = _customizeWorkshopSettingsApplication
.EditWorkshopSettingShifts(shiftViewModels, customizeWorkshopSettingsId, workshopShiftStatus,fridayWork, holidayWork);
return new JsonResult(new
{
success = result.IsSuccedded,
message = result.Message,
});
}
public IActionResult OnGetIrregularWorkshopHaveGroupedAllPersonnelValidation(long customizeWorkshopSettingsId)
{
var isWorkshopIrregular = _customizeWorkshopSettingsApplication
.GetWorkshopSettingsDetails(customizeWorkshopSettingsId).WorkshopShiftStatus == WorkshopShiftStatus.Irregular;
if (isWorkshopIrregular == false)
return new JsonResult(new
{
success = true,
});
if (_customizeWorkshopSettingsApplication.GetEmployeesWithoutGroup(customizeWorkshopSettingsId).Any())
return new JsonResult(new
{
success = true,
});
return new JsonResult(new
{
success = true,
});
}
}
}