57c41c7a60
- fix naming DbModels
187 lines
5.6 KiB
C#
187 lines
5.6 KiB
C#
using Microsoft.AspNetCore.Components;
|
|
using Microsoft.Extensions.Configuration;
|
|
using MP.FileData.DbModels;
|
|
using MP.FileData.DTO;
|
|
using MP.Prog.Data;
|
|
using NLog;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Diagnostics;
|
|
using System.Linq;
|
|
using System.Threading.Tasks;
|
|
|
|
namespace MP.Prog.Components
|
|
{
|
|
public partial class ArchiveStatus : IDisposable
|
|
{
|
|
#region Public Methods
|
|
|
|
public void Dispose()
|
|
{
|
|
ListRecords = null;
|
|
GC.Collect();
|
|
}
|
|
|
|
#endregion Public Methods
|
|
|
|
#region Protected Properties
|
|
|
|
[Inject]
|
|
protected IConfiguration Configuration { get; set; }
|
|
|
|
[Inject]
|
|
protected FileArchDataService FDService { get; set; }
|
|
|
|
[Inject]
|
|
protected MessageService MServ { get; set; }
|
|
|
|
protected int percLoading { get; set; } = 0;
|
|
protected bool showProgress { get; set; } = false;
|
|
|
|
#endregion Protected Properties
|
|
|
|
#region Protected Methods
|
|
|
|
protected void AddNew()
|
|
{
|
|
DateTime adesso = DateTime.Now;
|
|
SelRecord = new ArchMaccModel()
|
|
{
|
|
IdxMacchina = $"ID_{adesso:yyMMd_HHmmss}",
|
|
RuleName = "Rule05.json",
|
|
Nome = "Nuova Folder",
|
|
Descrizione = "Backup folder",
|
|
BasePath = Configuration.GetValue<string>("ServerConf:FolderBasePath"),
|
|
ImgUrl = "Steamware.png",
|
|
Note = ""
|
|
};
|
|
}
|
|
|
|
protected async Task ArchiveCheck(int maxHour)
|
|
{
|
|
showProgress = true;
|
|
percLoading = 0;
|
|
await VerificaTutte(maxHour);
|
|
|
|
setupMessages.Add($"Effettuata verifica e rilettura di {numChecks} files!");
|
|
}
|
|
|
|
protected async Task ArchiveSingleCheck(string idxMacchina, int maxHour)
|
|
{
|
|
showProgress = true;
|
|
percLoading = 0;
|
|
await VerificaSingola(idxMacchina, maxHour, 2);
|
|
|
|
setupMessages.Add($"Effettuata verifica e rilettura di {numChecks} files!");
|
|
}
|
|
|
|
protected void ClearMessage()
|
|
{
|
|
setupMessages = new List<string>();
|
|
}
|
|
|
|
protected async Task ForceCheck(int maxHour)
|
|
{
|
|
ListRecords = null;
|
|
await InvokeAsync(StateHasChanged);
|
|
setupMessages.Add("Inizio Analisi Archivio...");
|
|
await InvokeAsync(StateHasChanged);
|
|
await ArchiveCheck(maxHour);
|
|
await Task.Delay(200);
|
|
ClearMessage();
|
|
await ReloadData();
|
|
}
|
|
|
|
protected async Task ForceCheckMacchina(string idxMacchina)
|
|
{
|
|
ListRecords = null;
|
|
await InvokeAsync(StateHasChanged);
|
|
setupMessages.Add($"Inizio Analisi Archivio | Archivio {idxMacchina}");
|
|
await InvokeAsync(StateHasChanged);
|
|
await ArchiveSingleCheck(idxMacchina, 0);
|
|
await Task.Delay(200);
|
|
ClearMessage();
|
|
await ReloadData();
|
|
}
|
|
|
|
protected override async Task OnInitializedAsync()
|
|
{
|
|
ListRecords = null;
|
|
await ReloadData();
|
|
}
|
|
|
|
protected async Task ReloadData()
|
|
{
|
|
ListRecords = null;
|
|
await Task.Delay(1);
|
|
numChecks = 0;
|
|
ListRecords = await FDService.GetArchiveStatus();
|
|
totalCount = ListRecords.Count;
|
|
await Task.Delay(1);
|
|
setupMessages = new List<string>();
|
|
showProgress = false;
|
|
percLoading = 0;
|
|
await InvokeAsync(StateHasChanged);
|
|
}
|
|
|
|
protected async void ResetSel()
|
|
{
|
|
SelRecord = null;
|
|
await ReloadData();
|
|
}
|
|
|
|
protected async Task SelEdit(string idxMacc)
|
|
{
|
|
// recupero macchina e mando a edit!
|
|
SelRecord = await FDService.ArchMaccGetByKey(idxMacc);
|
|
}
|
|
|
|
#endregion Protected Methods
|
|
|
|
#region Private Fields
|
|
|
|
private static NLog.Logger Log = LogManager.GetCurrentClassLogger();
|
|
private List<ArchiveStatusDTO> ListRecords;
|
|
private int numChecks = 0;
|
|
private Stopwatch sw = new Stopwatch();
|
|
private int totalCount = 0;
|
|
|
|
#endregion Private Fields
|
|
|
|
#region Private Properties
|
|
|
|
private ArchMaccModel? SelRecord { get; set; } = null;
|
|
private List<string> setupMessages { get; set; } = new List<string>();
|
|
|
|
#endregion Private Properties
|
|
|
|
#region Private Methods
|
|
|
|
private async Task VerificaSingola(string idxMacchina, int numDays, int numMacchine)
|
|
{
|
|
sw.Restart();
|
|
// recupero elenco macchine
|
|
percLoading += 100 / numMacchine;
|
|
numChecks = await FDService.UpdateMachineArchive(idxMacchina, numDays, true, false, "", false);
|
|
await Task.Delay(1);
|
|
setupMessages.Add($"{idxMacchina}: {numChecks} files");
|
|
await InvokeAsync(StateHasChanged);
|
|
await Task.Delay(1);
|
|
sw.Stop();
|
|
Log.Info($"VerificaSingola | idxMacchina: {idxMacchina} | {sw.ElapsedMilliseconds:N0}ms");
|
|
}
|
|
|
|
private async Task VerificaTutte(int numDays)
|
|
{
|
|
// recupero elenco macchine
|
|
var listaMacchine = await FDService.ArchMaccGetAll();
|
|
int numMacchine = listaMacchine.Count();
|
|
foreach (var item in listaMacchine.Where(x => !string.IsNullOrEmpty(x.BasePath)).ToList())
|
|
{
|
|
await VerificaSingola(item.IdxMacchina, numDays, numMacchine);
|
|
}
|
|
}
|
|
|
|
#endregion Private Methods
|
|
}
|
|
} |