100 lines
2.8 KiB
C#
100 lines
2.8 KiB
C#
using CompanyManagment.App.Contracts.RollCall;
|
|
using CompanyManagment.App.Contracts.RollCallEmployee;
|
|
using CompanyManagment.App.Contracts.Workshop;
|
|
using Microsoft.AspNetCore.Mvc;
|
|
using Microsoft.AspNetCore.Mvc.RazorPages;
|
|
using System.Security.Claims;
|
|
using _0_Framework.Application;
|
|
|
|
namespace ServiceHost.Areas.AdminNew.Pages.Company.RollCall
|
|
{
|
|
public class CurrentDayModel : PageModel
|
|
{
|
|
public CurrentDayRollCall RollCallViewModels;
|
|
public string WorkshopFullName;
|
|
public string NowDate;
|
|
public long WorkshopId;
|
|
|
|
private readonly IPasswordHasher _passwordHasher;
|
|
private readonly IWorkshopApplication _workshopApplication;
|
|
private readonly IRollCallEmployeeApplication _rollCallEmployeeApplication;
|
|
private readonly IRollCallApplication _rollCallApplication;
|
|
|
|
public CurrentDayModel(IPasswordHasher passwordHasher, IRollCallEmployeeApplication rollCallEmployeeApplication, IRollCallApplication rollCallApplication, IWorkshopApplication workshopApplication)
|
|
{
|
|
_passwordHasher = passwordHasher;
|
|
_rollCallEmployeeApplication = rollCallEmployeeApplication;
|
|
_rollCallApplication = rollCallApplication;
|
|
_workshopApplication = workshopApplication;
|
|
}
|
|
|
|
public IActionResult OnGet(long workshopId)
|
|
{
|
|
WorkshopId = workshopId;
|
|
if (_rollCallEmployeeApplication.GetByWorkshopId(workshopId).Any())
|
|
{
|
|
WorkshopFullName = _workshopApplication.GetDetails(workshopId).WorkshopFullName;
|
|
|
|
var now = DateTime.Now.ToFarsi();
|
|
NowDate = now;
|
|
|
|
var searchModel = new RollCallSearchModel()
|
|
{
|
|
WorkshopId = workshopId,
|
|
};
|
|
|
|
RollCallViewModels = _rollCallApplication.GetWorkshopCurrentDayRollCalls(workshopId);
|
|
return Page();
|
|
}
|
|
else
|
|
{
|
|
return Redirect("/AdminNew/Company/RollCall");
|
|
}
|
|
}
|
|
|
|
|
|
|
|
public IActionResult OnGetCurrentDayAjax(string type, long workshopId)
|
|
{
|
|
RollCallViewModels = _rollCallApplication.GetWorkshopCurrentDayRollCalls(workshopId);
|
|
|
|
List<object> data = new();
|
|
switch (type)
|
|
{
|
|
case "all":
|
|
data.AddRange(RollCallViewModels.PresentEmployees);
|
|
break;
|
|
case "absent":
|
|
data.AddRange(RollCallViewModels.AbsentEmployees.Where(x => !x.HasLeave));
|
|
break;
|
|
case "leave":
|
|
data.AddRange(RollCallViewModels.AbsentEmployees.Where(x => x.HasLeave));
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
|
|
return new JsonResult(new
|
|
{
|
|
isSuccess = true,
|
|
data = data
|
|
});
|
|
}
|
|
|
|
public IActionResult OnGetCurrentAjaxCount(long workshopId)
|
|
{
|
|
RollCallViewModels = _rollCallApplication.GetWorkshopCurrentDayRollCalls(workshopId);
|
|
|
|
var absentEmployeesCount = RollCallViewModels.AbsentEmployees.Count(x => !x.HasLeave);
|
|
var leaveEmployeesCount = RollCallViewModels.AbsentEmployees.Count(x => x.HasLeave);
|
|
|
|
return new JsonResult(new
|
|
{
|
|
isSuccess = true,
|
|
absentEmployeesCount = absentEmployeesCount,
|
|
leaveEmployeesCount = leaveEmployeesCount
|
|
});
|
|
}
|
|
}
|
|
}
|