Files
Backend-Api/ServiceHost/Areas/AdminNew/Pages/Company/RollCall/CurrentDay.cshtml.cs

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
});
}
}
}