96 lines
3.1 KiB
C#
96 lines
3.1 KiB
C#
// See https://aka.ms/new-console-template for more information
|
|
using MapoDataFiller;
|
|
using MapoDataFiller.Filler;
|
|
using Spectre.Console;
|
|
|
|
|
|
AnsiConsole.Write(
|
|
new FigletText("MapoDataFiller")
|
|
.LeftAligned()
|
|
.Color(Color.Blue1));
|
|
var rule = new Rule("[green]Setup data[/]");
|
|
rule.Alignment = Justify.Left;
|
|
AnsiConsole.Write(rule);
|
|
|
|
// recupero configurazione...
|
|
MConf currConf = new MConf();
|
|
if (File.Exists("conf.yaml"))
|
|
{
|
|
currConf = CMan.readConf("conf.yaml");
|
|
}
|
|
AnsiConsole.WriteLine();
|
|
|
|
AnsiConsole.MarkupLineInterpolated($"Conf ConfDir: [yellow]{currConf.ConfDir}[/]");
|
|
var pathOk = AnsiConsole.Confirm("Confermi ConfDir?");
|
|
while (!pathOk)
|
|
{
|
|
currConf.ConfDir = AnsiConsole.Ask<string>("Inserisci ConfDir desiderato:");
|
|
AnsiConsole.WriteLine(currConf.ConfDir);
|
|
pathOk = AnsiConsole.Confirm("Confermi ConfDir?");
|
|
}
|
|
|
|
AnsiConsole.MarkupLineInterpolated($"Conf FillMode: [yellow]{currConf.FillMode}[/]");
|
|
var fillOK = AnsiConsole.Confirm("Confermi FillMode?");
|
|
while (!fillOK)
|
|
{
|
|
currConf.FillMode = AnsiConsole.Ask<string>("Inserisci il modo desiderato:");
|
|
AnsiConsole.WriteLine(currConf.FillMode);
|
|
fillOK = AnsiConsole.Confirm("Confermi FillMode?");
|
|
}
|
|
|
|
AnsiConsole.MarkupLineInterpolated($"Conf HasHeader: [yellow]{currConf.HasHeader}[/]");
|
|
var headOK = AnsiConsole.Confirm("Confermi HasHeader?");
|
|
while (!headOK)
|
|
{
|
|
currConf.HasHeader = AnsiConsole.Ask<bool>("HasHeader (true/false)?");
|
|
AnsiConsole.WriteLine(currConf.HasHeader);
|
|
headOK = AnsiConsole.Confirm("Confermi HasHeader?");
|
|
}
|
|
|
|
// leggo timetable
|
|
string filePath = Path.Combine(currConf.ConfDir, currConf.TimeTable);
|
|
if (File.Exists(filePath))
|
|
{
|
|
var righe = File.ReadAllLines(filePath).ToList();
|
|
// se devo saltare
|
|
if (currConf.HasHeader)
|
|
{
|
|
righe = righe.Skip(1).ToList();
|
|
}
|
|
// svuoto cartella output
|
|
if (!Directory.Exists(currConf.OutFolder))
|
|
{
|
|
Directory.CreateDirectory(currConf.OutFolder);
|
|
}
|
|
var fileList = Directory.GetFiles(currConf.OutFolder);
|
|
foreach (var file in fileList)
|
|
{
|
|
File.Delete(file);
|
|
}
|
|
|
|
// verifico quale oggetto sim avviare... x ora SOLO interclays
|
|
InterClays currSim = new InterClays();
|
|
// ciclo su ogni record
|
|
foreach (var riga in righe)
|
|
{
|
|
// recupero dati del giorno corrente
|
|
var giornata = new DayConf("CsvDateDur", riga);
|
|
|
|
var simDataBlock = currSim.GetDataRows(currConf.FillMode, giornata);
|
|
// scrivo sul file mensile i dati del singolo giorno...
|
|
string pathFileFL = Path.Combine(currConf.OutFolder, $"{currConf.FillMode}_FL_{giornata.dtStart:yyyy-MM}.csv");
|
|
if (!File.Exists(pathFileFL))
|
|
{
|
|
File.WriteAllText(pathFileFL,"");
|
|
}
|
|
string pathFileEL = Path.Combine(currConf.OutFolder, $"{currConf.FillMode}_EL_{giornata.dtStart:yyyy-MM}.csv");
|
|
if (!File.Exists(pathFileEL))
|
|
{
|
|
File.WriteAllText(pathFileEL, "");
|
|
}
|
|
// vado in append...
|
|
File.AppendAllLines(pathFileFL, simDataBlock.FlList);
|
|
File.AppendAllLines(pathFileEL, simDataBlock.EvList);
|
|
}
|
|
}
|