Files
Backend-Api/ServiceHost/Areas/AdminNew/Pages/Index.cshtml.cs
2025-04-07 19:44:22 +03:30

115 lines
4.2 KiB
C#

using _0_Framework.Application;
using AccountManagement.Application.Contracts.Task;
using AccountManagement.Application.Contracts.Ticket;
using backService;
using Company.Domain.WorkshopAccountAgg;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.RazorPages;
using WorkFlow.Application.Contracts.AdminWorkFlow;
namespace ServiceHost.Areas.AdminNew.Pages
{
public class IndexModel : PageModel
{
private readonly IConfiguration _configuration;
private readonly IAuthHelper _authHelper;
private readonly IWorkshopAccountRepository _workshopAccountRepository;
private readonly IAdminWorkFlowApplication _adminWorkFlowApplication;
private readonly ITicketApplication _ticketApplication;
private readonly ITaskApplication _taskApplication;
public List<BackupViewModel> DbBackupList { get; set; }
public List<BackupViewModel> InsuranceBackupList { get; set; }
public IndexModel(IWebHostEnvironment webHostEnvironment, IConfiguration configuration, IAuthHelper authHelper, IWorkshopAccountRepository workshopAccountRepository, IAdminWorkFlowApplication adminWorkFlowApplication, ITicketApplication ticketApplication, ITaskApplication taskApplication)
{
_configuration = configuration;
_authHelper = authHelper;
_workshopAccountRepository = workshopAccountRepository;
_adminWorkFlowApplication = adminWorkFlowApplication;
_ticketApplication = ticketApplication;
_taskApplication = taskApplication;
}
public void OnGet()
{
#region DbBackupLoad
string? dbZipPath = _configuration["BackupOptions:DbBackupZipPath"];
string[] dbBackups = Directory.GetFiles(dbZipPath);
DbBackupList = dbBackups.Select(x => new BackupViewModel()
{
FileName = Path.GetFileName(x),
FullPath = x,
CreationDate = Path.GetFileName(x).ExtractTimeFromDbbackup(),
}).OrderByDescending(x => x.CreationDate).ToList();
#endregion
#region InsurancBackupLoad
string? insuranceZipPath = _configuration["BackupOptions:InsuranceListZipPath"];
string[] insuranceBackups = Directory.GetFiles(insuranceZipPath);
InsuranceBackupList = insuranceBackups.Select(x => new BackupViewModel()
{
FileName = Path.GetFileName(x),
FullPath = x,
CreationDate = Path.GetFileName(x).ExtractTimeFromInsurancebackup(),
}).OrderByDescending(x => x.CreationDate).ToList();
#endregion
}
public IActionResult OnGetDownloadFile(string path, string fileName)
{
byte[] fileContent = System.IO.File.ReadAllBytes(path);
return File(fileContent, "application/zip", fileName);
}
public async Task<IActionResult> OnGetLayoutCountTask()
{
var currentAccountId = _authHelper.CurrentAccountId();
int taskCount = await _taskApplication.RequestedAndOverdueTasksCount(currentAccountId);
return new JsonResult(new
{
success = true,
data = taskCount
});
}
public async Task<IActionResult> OnGetLayoutCountTicket()
{
int ticketCount = _ticketApplication.GetAdminTicketsCount();
return new JsonResult(new
{
success = true,
data = ticketCount
});
}
public async Task<IActionResult> OnGetLayoutCountWorkFlow()
{
var currentAccountId = _authHelper.CurrentAccountId();
var accountWorkshops = _workshopAccountRepository.GetList(currentAccountId).Select(x => x.WorkshopId).ToList();
int workFlowCount = await _adminWorkFlowApplication.GetWorkFlowCountsForAdmin(accountWorkshops,currentAccountId);
return new JsonResult(new
{
success = true,
data = workFlowCount
});
}
public async Task<IActionResult> OnGetLayoutCountChecker()
{
int checkerCount = await _adminWorkFlowApplication.GetWorkFlowCountForChecker();
return new JsonResult(new
{
success = true,
data = checkerCount,
});
}
}
}