Files
Mapo-IOB-WIN/EgwCApp/EgwCApp.Testing/Program.cs
T
2022-12-19 20:11:15 +01:00

111 lines
2.8 KiB
C#

// See https://aka.ms/new-console-template for more information
using EgwCApp.Core;
using System.Diagnostics;
using Newtonsoft.Json;
Dictionary<string, TimeSpan> statsColl = new Dictionary<string, TimeSpan>();
Stopwatch sw = new Stopwatch();
string separator = "--------------------------------------";
Console.WriteLine(separator);
Console.WriteLine("Console Test Application");
Console.WriteLine(separator);
Console.WriteLine();
// creo il file di configurazione...
string fileName = "conf.json";
ConfigFile newConf = new ConfigFile();
// test CSV
if (false)
{
newConf = new ConfigFile()
{
Type = ImportType.CSV,
FileInPath = @"C:\Temp\test.log",
Return = ReturnMode.Console
};
}
else
{
Dictionary<string, int> importParams = new Dictionary<string, int>();
importParams.Add("Product", 3);
importParams.Add("Variety", 9);
importParams.Add("Supplier", 8);
importParams.Add("ExtDoc", 2);
importParams.Add("DateRif", 14);
importParams.Add("QtyTot", 22);
importParams.Add("NumPack", 21);
importParams.Add("NumPed", 17);
importParams.Add("PackPed", 18);
importParams.Add("PesoPack", 20);
newConf = new ConfigFile()
{
Type = ImportType.Excel,
FileInPath = @"C:\temp\import\01.12.xlsx",
Return = ReturnMode.Console,
ProcessParamInt = importParams,
TargetName="DB Loco"
};
}
// serializzo e salvo!
string rawData = JsonConvert.SerializeObject(newConf, Formatting.Indented);
File.WriteAllText(fileName, rawData);
string baseDir = "Tools";
string exeName = "ExcImport.exe";
string appPath = $"./{baseDir}/{exeName}";
string procArg = fileName;
Console.WriteLine("calling ext app with args:");
Console.WriteLine($"{appPath} {procArg}");
Console.WriteLine();
Console.WriteLine("press enter to proceed...");
Console.ReadLine();
ProcessStartInfo psi = new ProcessStartInfo
{
FileName = appPath,
Arguments = $"{procArg}",
WindowStyle = ProcessWindowStyle.Minimized,
//WindowStyle = ProcessWindowStyle.Hidden,
UseShellExecute = false,
//CreateNoWindow = true,
RedirectStandardOutput = true,
RedirectStandardInput = true,
};
sw.Start();
Process p = Process.Start(psi);
string q = "";
while (!p.HasExited)
{
q += p.StandardOutput.ReadToEnd();
}
sw.Stop();
var timeElaps = sw.Elapsed;
statsColl.Add("Ext prog executed", timeElaps);
Console.WriteLine(separator);
Console.WriteLine("press enter to proceed...");
Console.ReadLine();
sw.Restart();
Console.WriteLine("Data received:");
Console.WriteLine(q);
Console.WriteLine();
sw.Stop();
timeElaps = sw.Elapsed;
statsColl.Add("Data Received", timeElaps);
foreach (var item in statsColl)
{
Console.WriteLine($"{item.Key} {item.Value.TotalMilliseconds} ms");
}
//Console.WriteLine($"Display executed in {timeElaps.TotalMilliseconds} ms");
Console.ReadLine();