This commit is contained in:
zaccaria.majid
2023-07-31 12:20:45 +02:00
4 changed files with 453 additions and 383 deletions
+217 -186
View File
@@ -1,22 +1,37 @@
using EgwCoreLib.Razor;
using Microsoft.AspNetCore.Components.Forms;
using Microsoft.AspNetCore.Components;
using Microsoft.AspNetCore.Components.Forms;
using NLog;
using SMGen.Data;
using SMGen.Data.DbModels;
using SMGen.Data.Services;
using SMGen.Data;
using Microsoft.VisualBasic;
using NLog;
namespace SMGen.Pages
{
public partial class SMEvent2State
{
#region Protected Fields
protected static Logger Log = LogManager.GetCurrentClassLogger();
protected SelectSMIn2EvParams currFilter = new SelectSMIn2EvParams();
protected DataPager? pagerSMIn2Ev = null!;
#endregion Protected Fields
#region Protected Properties
protected bool b_rules_definition { get; set; } = false;
protected static Logger Log = LogManager.GetCurrentClassLogger();
protected bool calcEmptyState
{
get => conf.GetValue<bool>("SetupOptions:DoCalcEmptyState");
}
protected bool calcItself
{
get => conf.GetValue<bool>("SetupOptions:DoCalcItself");
}
[Inject]
protected IConfiguration conf { get; set; } = null!;
@@ -24,29 +39,14 @@ namespace SMGen.Pages
[Inject]
protected IWebHostEnvironment env { get; set; } = null!;
[Inject]
protected SMGDataService SMGDService { get; set; } = null!;
protected List<string> Events_to_send { get; set; } = new List<string>();
protected List<AnagEventiModelTemp> events2Add { get; set; } = new List<AnagEventiModelTemp>();
protected List<string> fileLines { get; set; } = new List<string>();
private Dictionary<string, bool> filesStatus
{
get => currFilter.FilesStatus;
set => currFilter.FilesStatus = value;
}
private Dictionary<string, string> files2Download
{
get => currFilter.Files2Download;
set => currFilter.Files2Download = value;
}
protected Dictionary<string, string> files2Read { get; set; } = new Dictionary<string, string>();
protected List<TransizioneIngressiModelTemp> TranInList2add { get; set; } = new List<TransizioneIngressiModelTemp>();
protected string n_state_machine_index { get; set; } = "";
protected int n_states { get; set; } = 0;
@@ -59,29 +59,36 @@ namespace SMGen.Pages
{
get => conf.GetValue<string>("ServerConf:ProcCsvRootPath");
}
protected bool calcItself
{
get => conf.GetValue<bool>("SetupOptions:DoCalcItself");
}
protected bool calcEmptyState
{
get => conf.GetValue<bool>("SetupOptions:DoCalcEmptyState");
}
protected List<RuleClass> Rules { get; set; } = new List<RuleClass>();
[Inject]
protected SMGDataService SMGDService { get; set; } = null!;
protected List<string> States2Rules { get; set; } = new List<string>();
protected Dictionary<string, int> StatesAll { get; set; } = new Dictionary<string, int>();
protected Dictionary<string, int> StatesAll2 { get; set; } = new Dictionary<string, int>();
protected string statiCsvPath
{
get => conf.GetValue<string>("ServerConf:StatiCsvPath");
}
protected List<RuleClass> Rules { get; set; } = new List<RuleClass>();
protected Dictionary<string, int> StatesAll { get; set; } = new Dictionary<string, int>();
protected Dictionary<string, int> StatesAll2 { get; set; } = new Dictionary<string, int>();
protected List<string> States2Rules { get; set; } = new List<string>();
//protected string sz_file2Read { get; set; } = "D:\\Repo\\Mapo-IOB\\StateMachine\\_DEFAULT\\60_STD_MACHINE.rul";
protected string sz_file2Read { get; set; } = "";
protected string sz_file2Write { get; set; } = "prova.csv";
protected string sz_state_machine_name { get; set; } = "";
protected List<TransizioneIngressiModelTemp> TranInList2add { get; set; } = new List<TransizioneIngressiModelTemp>();
#endregion Protected Properties
#region Protected Methods
protected bool checkDirExist(string dir)
{
bool answ = false;
@@ -106,100 +113,6 @@ namespace SMGen.Pages
return answ;
}
protected async Task Read_rule_file_transitions()
{
foreach (var item in files2Read)
{
sz_file2Read = item.Value;
using (StreamReader sr = new StreamReader(sz_file2Read))
{
StatesAll.Clear();
Events_to_send.Clear();
Rules.Clear();
string line = "";
while ((line = await sr.ReadLineAsync().ConfigureAwait(false)) != null)
{
if (!line.StartsWith("#") && !string.IsNullOrEmpty(line))
{
var sz_tokens = line.Split(":");
var sz_temp = sz_tokens[0].Trim();
switch (sz_temp)
{
case "$DEFINITIONS":
b_rules_definition = false;
break;
case "$NAME":
sz_state_machine_name = sz_tokens[1].Trim();
break;
case "$IDX":
n_state_machine_index = sz_tokens[1].Trim();
break;
#if false
case "$N_STATES":
n_states = int.Parse(sz_tokens[1].Trim());
break;
#endif
case "$STATE":
StatesAll.Add(sz_tokens[2].Trim().ToUpper(), int.Parse(sz_tokens[1].Trim().ToUpper()));
break;
case "$EVENT":
Events_to_send.Add(sz_tokens[2].Trim().ToUpper());
var newEvent = new AnagEventiModelTemp()
{
IdxTipo = int.Parse(sz_tokens[1].Trim().ToUpper()),
Nome = sz_tokens[2].Trim().ToUpper()
};
events2Add.Add(newEvent);
break;
case "$RULES":
b_rules_definition = true;
break;
case "$DO":
b_rules_definition = false;
var isOk = checkDirExist(Path.Combine(procRootDir, statiCsvPath));
if (isOk)
{
var fileName = $"{item.Key.Split(".")[0]}.csv";
evaluate_transitions($"{Path.Combine(procRootDir, statiCsvPath, fileName)}", item.Key);
}
break;
default:
if (b_rules_definition)
{
var state = sz_temp.Trim().ToUpper();
var event_to_send = sz_tokens[1].Trim().ToUpper();
var next_state = sz_tokens[2].Trim().ToUpper();
var temp_rule = new RuleClass()
{
state = state,
event_to_send = event_to_send,
next_state = next_state
};
Rules.Add(temp_rule);
States2Rules.Add(next_state);
}
break;
}
//fileLines.Add(lineSplit[0]);
}
}
}
}
}
protected async void evaluate_transitions(string sz_file2Write, string origFileName)
{
TranInList2add.Clear();
@@ -219,7 +132,6 @@ namespace SMGen.Pages
}
}
//ciclo negli stati
try
{
@@ -270,7 +182,6 @@ namespace SMGen.Pages
TranInList2add.Add(newTranIn);
}
}
exitFor = true;
}
@@ -293,9 +204,177 @@ namespace SMGen.Pages
}
}
protected void ForceReload(int newNum)
{
numRecord = newNum;
}
protected void ForceReloadPage(int newNum)
{
currPage = newNum;
}
protected async Task pgResetReq(bool doReset)
{
if (doReset)
{
await Task.Delay(1);
if (pagerSMIn2Ev != null)
{
pagerSMIn2Ev.resetCurrPage();
}
}
}
protected async Task Read_rule_file_transitions()
{
foreach (var item in files2Read)
{
sz_file2Read = item.Value;
using (StreamReader sr = new StreamReader(sz_file2Read))
{
StatesAll.Clear();
Events_to_send.Clear();
Rules.Clear();
string line = "";
while ((line = await sr.ReadLineAsync().ConfigureAwait(false)) != null)
{
if (!line.StartsWith("#") && !string.IsNullOrEmpty(line))
{
var sz_tokens = line.Split(":");
var sz_temp = sz_tokens[0].Trim();
switch (sz_temp)
{
case "$DEFINITIONS":
b_rules_definition = false;
break;
case "$NAME":
sz_state_machine_name = sz_tokens[1].Trim();
break;
case "$IDX":
n_state_machine_index = sz_tokens[1].Trim();
break;
#if false
case "$N_STATES":
n_states = int.Parse(sz_tokens[1].Trim());
break;
#endif
case "$STATE":
StatesAll.Add(sz_tokens[2].Trim().ToUpper(), int.Parse(sz_tokens[1].Trim().ToUpper()));
break;
case "$EVENT":
Events_to_send.Add(sz_tokens[2].Trim().ToUpper());
var newEvent = new AnagEventiModelTemp()
{
IdxTipo = int.Parse(sz_tokens[1].Trim().ToUpper()),
Nome = sz_tokens[2].Trim().ToUpper()
};
events2Add.Add(newEvent);
break;
case "$RULES":
b_rules_definition = true;
break;
case "$DO":
b_rules_definition = false;
var isOk = checkDirExist(Path.Combine(procRootDir, statiCsvPath));
if (isOk)
{
var fileName = $"{item.Key.Split(".")[0]}.csv";
evaluate_transitions($"{Path.Combine(procRootDir, statiCsvPath, fileName)}", item.Key);
}
break;
default:
if (b_rules_definition)
{
var state = sz_temp.Trim().ToUpper();
var event_to_send = sz_tokens[1].Trim().ToUpper();
var next_state = sz_tokens[2].Trim().ToUpper();
var temp_rule = new RuleClass()
{
state = state,
event_to_send = event_to_send,
next_state = next_state
};
Rules.Add(temp_rule);
States2Rules.Add(next_state);
}
break;
}
//fileLines.Add(lineSplit[0]);
}
}
}
}
}
protected async Task updateFilter(SelectSMIn2EvParams newParams)
{
await Task.Delay(1);
currPage = 1;
// salvo comunque filtro reparto x utente
await Task.Delay(1);
await InvokeAsync(() => StateHasChanged());
currFilter = newParams;
}
protected void UpdateTotCount(int newTotCount)
{
totalCount = newTotCount;
}
#endregion Protected Methods
#region Private Properties
private int currPage
{
get => currFilter.CurrPage;
set => currFilter.CurrPage = value;
}
private Dictionary<string, string> files2Download
{
get => currFilter.Files2Download;
set => currFilter.Files2Download = value;
}
private Dictionary<string, bool> filesStatus
{
get => currFilter.FilesStatus;
set => currFilter.FilesStatus = value;
}
private int numRecord
{
get => currFilter.NumRec;
set => currFilter.NumRec = value;
}
private int totalCount
{
get => currFilter.TotCount;
set => currFilter.TotCount = value;
}
#endregion Private Properties
#region Private Methods
/// <summary>
/// Procedee a bonificare la cartella di upload dei files + vecchi di 3 mesi
/// Procedee a bonificare la cartella di upload dei files + vecchi di 3 mesi
/// </summary>
private void deleteOldFiles(string dirPath)
{
@@ -311,46 +390,6 @@ namespace SMGen.Pages
}
}
}
private int totalCount
{
get => currFilter.TotCount;
set => currFilter.TotCount = value;
}
private int numRecord
{
get => currFilter.NumRec;
set => currFilter.NumRec = value;
}
private int currPage
{
get => currFilter.CurrPage;
set => currFilter.CurrPage = value;
}
protected void UpdateTotCount(int newTotCount)
{
totalCount = newTotCount;
}
protected async Task updateFilter(SelectSMIn2EvParams newParams)
{
await Task.Delay(1);
currPage = 1;
// salvo comunque filtro reparto x utente
await Task.Delay(1);
await InvokeAsync(() => StateHasChanged());
currFilter = newParams;
}
protected async Task pgResetReq(bool doReset)
{
if (doReset)
{
await Task.Delay(1);
if (pagerSMIn2Ev != null)
{
pagerSMIn2Ev.resetCurrPage();
}
}
}
//// va dopo
//private StreamWriter objWriter { get; set; };
@@ -385,16 +424,15 @@ namespace SMGen.Pages
if (!Directory.Exists(pathDir))
{
Directory.CreateDirectory(pathDir);
}
else
{
Log.Info($"Creato directory {pathDir}");
}
//creo file
await using FileStream fs = new(pathFile, FileMode.Create);
//copio il contenuto del file
await file.OpenReadStream(maxFileSize).CopyToAsync(fs);
using (FileStream fs = new(pathFile, FileMode.Create))
{
//copio il contenuto del file
await file.OpenReadStream(maxFileSize).CopyToAsync(fs);
}
if (file.Name.Contains(".rul"))
{
files2Read.Add(file.Name, pathFile);
@@ -412,14 +450,7 @@ namespace SMGen.Pages
}
}
}
protected void ForceReload(int newNum)
{
numRecord = newNum;
}
protected void ForceReloadPage(int newNum)
{
currPage = newNum;
}
#endregion Private Methods
}
}
+230 -197
View File
@@ -1,9 +1,7 @@
using EgwCoreLib.Razor;
using Microsoft.AspNetCore.Components;
using Microsoft.AspNetCore.Components.Forms;
using Microsoft.AspNetCore.Mvc.RazorPages;
using Microsoft.Extensions.ObjectPool;
using Org.BouncyCastle.Utilities;
using NLog;
using SMGen.Data;
using SMGen.Data.DbModels;
using SMGen.Data.Services;
@@ -13,11 +11,23 @@ namespace SMGen.Pages
{
public partial class SMIn2Event
{
#region Protected Fields
protected SelectSMIn2EvParams currFilter = new SelectSMIn2EvParams();
protected DataPager? pagerSMIn2Ev = null!;
#endregion Protected Fields
#region Protected Properties
protected bool b_rules_definition { get; set; } = false;
protected string bitCsvPath
{
get => conf.GetValue<string>("ServerConf:BitCsvPath");
}
protected List<string> Bits { get; set; } = new List<string>();
[Inject]
@@ -26,32 +36,14 @@ namespace SMGen.Pages
[Inject]
protected IWebHostEnvironment env { get; set; } = null!;
[Inject]
protected SMGDataService SMGDService { get; set; } = null!;
protected List<string> Events_to_send { get; set; } = new List<string>();
protected List<AnagEventiModelTemp> events2Add { get; set; } = new List<AnagEventiModelTemp>();
protected List<string> fileLines { get; set; } = new List<string>();
//protected Dictionary<string, string> files2Download { get; set; } = new Dictionary<string, string>();
//protected Dictionary<string, bool> filesStatus { get; set; } = new Dictionary<string, bool>();
private Dictionary<string, bool> filesStatus
{
get => currFilter.FilesStatus;
set => currFilter.FilesStatus = value;
}
private Dictionary<string, string> files2Download
{
get => currFilter.Files2Download;
set => currFilter.Files2Download = value;
}
protected Dictionary<string, string> files2Read { get; set; } = new Dictionary<string, string>();
protected List<TransizioneIngressiModelTemp> TranInList2add { get; set; } = new List<TransizioneIngressiModelTemp>();
protected int n_bits { get; set; } = 0;
protected string n_state_machine_index { get; set; } = "";
@@ -66,18 +58,29 @@ namespace SMGen.Pages
{
get => conf.GetValue<string>("ServerConf:ProcCsvRootPath");
}
protected string bitCsvPath
{
get => conf.GetValue<string>("ServerConf:BitCsvPath");
}
protected List<RuleClass> Rules { get; set; } = new List<RuleClass>();
[Inject]
protected SMGDataService SMGDService { get; set; } = null!;
//protected Dictionary<string, string> files2Download { get; set; } = new Dictionary<string, string>();
protected List<string> States { get; set; } = new List<string>();
//protected string sz_file2Read { get; set; } = "D:\\Repo\\Mapo-IOB\\StateMachine\\_DEFAULT\\60_STD_MACHINE.rul";
protected string sz_file2Read { get; set; } = "";
protected string sz_file2Write { get; set; } = "prova.csv";
protected string sz_state_machine_name { get; set; } = "";
protected List<TransizioneIngressiModelTemp> TranInList2add { get; set; } = new List<TransizioneIngressiModelTemp>();
#endregion Protected Properties
#region Protected Methods
protected bool checkDirExist(string dir)
{
bool answ = false;
@@ -102,122 +105,10 @@ namespace SMGen.Pages
return answ;
}
protected async Task Read_rule_file_transitions()
protected async Task evaluate_transitions(string sz_file2Write, string origFileName)
{
foreach (var item in files2Read)
{
//await Task.Delay(10);
sz_state_machine_name = "";
n_state_machine_index = "";
n_states = 0;
n_bits = 0;
States.Clear();
Bits.Clear();
Events_to_send.Clear();
Rules.Clear();
sz_file2Read = item.Value;
await Task.Delay(1);
using (StreamReader sr = new StreamReader(sz_file2Read))
{
string line = "";
while ((line = await sr.ReadLineAsync().ConfigureAwait(false)) != null)
{
if (!line.StartsWith("#") && !string.IsNullOrEmpty(line))
{
var sz_tokens = line.Split(":");
var sz_temp = sz_tokens[0].Trim();
switch (sz_temp)
{
case "$DEFINITIONS":
b_rules_definition = false;
break;
case "$NAME":
sz_state_machine_name = sz_tokens[1].Trim();
break;
case "$IDX":
n_state_machine_index = sz_tokens[1].Trim();
break;
case "$N_STATES":
n_states = int.Parse(sz_tokens[1].Trim());
break;
case "$N_BITS":
n_bits = int.Parse(sz_tokens[1].Trim());
break;
case "$BIT":
Bits.Add(sz_tokens[2].Trim().ToUpper());
break;
case "$STATE":
States.Add(sz_tokens[2].Trim().ToUpper());
break;
case "$EVENT":
Events_to_send.Add(sz_tokens[2].Trim().ToUpper());
var newEvent = new AnagEventiModelTemp()
{
IdxTipo = int.Parse(sz_tokens[1].Trim().ToUpper()),
Nome = sz_tokens[2].Trim().ToUpper()
};
events2Add.Add(newEvent);
break;
case "$RULES":
b_rules_definition = true;
break;
case "$DO":
b_rules_definition = false;
var isOk = checkDirExist(procRootDir);
if (isOk)
{
var fileName = $"{item.Key.Split(".")[0]}.csv";
evaluate_transitions($"{Path.Combine(procRootDir, bitCsvPath, fileName)}", item.Key);
await SMGDService.AnagEventinInsert(events2Add);
await Task.Delay(1);
filesStatus[item.Key] = await SMGDService.TranInInsert(TranInList2add, int.Parse(n_state_machine_index));
if (!files2Download.ContainsKey(item.Key))
{
files2Download.Add(item.Key, sz_file2Write);
}
await InvokeAsync(() => StateHasChanged());
}
break;
default:
if (b_rules_definition)
{
var temp_rule = new RuleClass()
{
state = sz_temp.Trim().ToUpper(),
expression = sz_tokens[1].Trim().ToUpper(),
next_state = sz_tokens[2].Trim().ToUpper(),
event_to_send = sz_tokens[3].Trim().ToUpper()
};
Rules.Add(temp_rule);
}
break;
}
//fileLines.Add(lineSplit[0]);
}
}
}
}
}
protected async void evaluate_transitions(string sz_file2Write, string origFileName)
{
TranInList2add.Clear();
//events2Add.Clear();
@@ -228,7 +119,6 @@ namespace SMGen.Pages
StringBuilder sb = new StringBuilder();
sb.AppendLine("IdxFamigliaIngresso;IdxMicroStato;ValoreIngresso;IdxTipoEvento;next_IdxMicroStato");
string sz_actual_state = "";
string sz_actual_bit = "";
@@ -334,7 +224,7 @@ namespace SMGen.Pages
using (StreamWriter sw = new StreamWriter(sz_file2Write))
{
sw.Write(sb.ToString());
}
}
}
catch
{
@@ -342,9 +232,196 @@ namespace SMGen.Pages
}
}
protected void ForceReload(int newNum)
{
numRecord = newNum;
}
protected void ForceReloadPage(int newNum)
{
currPage = newNum;
}
protected async Task pgResetReq(bool doReset)
{
if (doReset)
{
await Task.Delay(1);
if (pagerSMIn2Ev != null)
{
pagerSMIn2Ev.resetCurrPage();
}
}
}
protected async Task Read_rule_file_transitions()
{
foreach (var item in files2Read)
{
//await Task.Delay(10);
sz_state_machine_name = "";
n_state_machine_index = "";
n_states = 0;
n_bits = 0;
States.Clear();
Bits.Clear();
Events_to_send.Clear();
Rules.Clear();
sz_file2Read = item.Value;
using (StreamReader sr = new StreamReader(sz_file2Read))
{
string line = "";
while ((line = await sr.ReadLineAsync().ConfigureAwait(false)) != null)
{
if (!line.StartsWith("#") && !string.IsNullOrEmpty(line))
{
var sz_tokens = line.Split(":");
var sz_temp = sz_tokens[0].Trim();
switch (sz_temp)
{
case "$DEFINITIONS":
b_rules_definition = false;
break;
case "$NAME":
sz_state_machine_name = sz_tokens[1].Trim();
break;
case "$IDX":
n_state_machine_index = sz_tokens[1].Trim();
break;
case "$N_STATES":
n_states = int.Parse(sz_tokens[1].Trim());
break;
case "$N_BITS":
n_bits = int.Parse(sz_tokens[1].Trim());
break;
case "$BIT":
Bits.Add(sz_tokens[2].Trim().ToUpper());
break;
case "$STATE":
States.Add(sz_tokens[2].Trim().ToUpper());
break;
case "$EVENT":
Events_to_send.Add(sz_tokens[2].Trim().ToUpper());
var newEvent = new AnagEventiModelTemp()
{
IdxTipo = int.Parse(sz_tokens[1].Trim().ToUpper()),
Nome = sz_tokens[2].Trim().ToUpper()
};
events2Add.Add(newEvent);
break;
case "$RULES":
b_rules_definition = true;
break;
case "$DO":
b_rules_definition = false;
var isOk = checkDirExist(procRootDir);
if (isOk)
{
var fileName = $"{item.Key.Split(".")[0]}.csv";
evaluate_transitions($"{Path.Combine(procRootDir, bitCsvPath, fileName)}", item.Key);
await SMGDService.AnagEventinInsert(events2Add);
await Task.Delay(1);
filesStatus[item.Key] = await SMGDService.TranInInsert(TranInList2add, int.Parse(n_state_machine_index));
if (!files2Download.ContainsKey(item.Key))
{
files2Download.Add(item.Key, sz_file2Write);
}
await InvokeAsync(() => StateHasChanged());
}
break;
default:
if (b_rules_definition)
{
var temp_rule = new RuleClass()
{
state = sz_temp.Trim().ToUpper(),
expression = sz_tokens[1].Trim().ToUpper(),
next_state = sz_tokens[2].Trim().ToUpper(),
event_to_send = sz_tokens[3].Trim().ToUpper()
};
Rules.Add(temp_rule);
}
break;
}
//fileLines.Add(lineSplit[0]);
}
}
}
}
}
protected async Task updateFilter(SelectSMIn2EvParams newParams)
{
await Task.Delay(1);
currPage = 1;
// salvo comunque filtro reparto x utente
await Task.Delay(1);
await InvokeAsync(() => StateHasChanged());
currFilter = newParams;
}
protected void UpdateTotCount(int newTotCount)
{
totalCount = newTotCount;
}
#endregion Protected Methods
#region Private Properties
private int currPage
{
get => currFilter.CurrPage;
set => currFilter.CurrPage = value;
}
private Dictionary<string, string> files2Download
{
get => currFilter.Files2Download;
set => currFilter.Files2Download = value;
}
//protected Dictionary<string, bool> filesStatus { get; set; } = new Dictionary<string, bool>();
private Dictionary<string, bool> filesStatus
{
get => currFilter.FilesStatus;
set => currFilter.FilesStatus = value;
}
private int numRecord
{
get => currFilter.NumRec;
set => currFilter.NumRec = value;
}
private int totalCount
{
get => currFilter.TotCount;
set => currFilter.TotCount = value;
}
#endregion Private Properties
#region Private Methods
/// <summary>
/// Procedee a bonificare la cartella di upload dei files + vecchi di 3 mesi
/// Procedee a bonificare la cartella di upload dei files + vecchi di 3 mesi
/// </summary>
private void deleteOldFiles(string dirPath)
{
@@ -360,46 +437,6 @@ namespace SMGen.Pages
}
}
}
private int totalCount
{
get => currFilter.TotCount;
set => currFilter.TotCount = value;
}
private int numRecord
{
get => currFilter.NumRec;
set => currFilter.NumRec = value;
}
private int currPage
{
get => currFilter.CurrPage;
set => currFilter.CurrPage = value;
}
protected void UpdateTotCount(int newTotCount)
{
totalCount = newTotCount;
}
protected async Task updateFilter(SelectSMIn2EvParams newParams)
{
await Task.Delay(1);
currPage = 1;
// salvo comunque filtro reparto x utente
await Task.Delay(1);
await InvokeAsync(() => StateHasChanged());
currFilter = newParams;
}
protected async Task pgResetReq(bool doReset)
{
if (doReset)
{
await Task.Delay(1);
if (pagerSMIn2Ev != null)
{
pagerSMIn2Ev.resetCurrPage();
}
}
}
//// va dopo
//private StreamWriter objWriter { get; set; };
@@ -434,16 +471,18 @@ namespace SMGen.Pages
if (!Directory.Exists(pathDir))
{
Directory.CreateDirectory(pathDir);
Log.Info($"Creato directory {pathDir}");
}
else
// creo file
using (FileStream fs = new(pathFile, FileMode.Create))
{
// copio il contenuto del file
await file.OpenReadStream(maxFileSize).CopyToAsync(fs);
// scrivo log
Log.Info($"Salvato file temp {pathFile}");
}
//creo file
await using FileStream fs = new(pathFile, FileMode.Create);
//copio il contenuto del file
await file.OpenReadStream(maxFileSize).CopyToAsync(fs);
if (file.Name.Contains(".rul"))
{
files2Read.Add(file.Name, pathFile);
@@ -455,14 +494,8 @@ namespace SMGen.Pages
}
}
}
protected void ForceReload(int newNum)
{
numRecord = newNum;
}
protected static Logger Log = LogManager.GetCurrentClassLogger();
protected void ForceReloadPage(int newNum)
{
currPage = newNum;
}
#endregion Private Methods
}
}
+6
View File
@@ -44,4 +44,10 @@
<ProjectReference Include="..\SMGen.Data\SMGen.Data.csproj" />
</ItemGroup>
<ItemGroup>
<None Update="logs\.placeholder">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
</ItemGroup>
</Project>
View File