Merge branch 'feature/echolot' into develop
This commit is contained in:
commit
e2f7ef1486
@ -1,9 +1,9 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<configuration>
|
<configuration>
|
||||||
<configSections>
|
<configSections>
|
||||||
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,Log4net" />
|
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,Log4net" />
|
||||||
<sectionGroup name="userSettings" type="System.Configuration.UserSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
<sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||||
<section name="bsmd.Tool.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false"/>
|
<section name="bsmd.Tool.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
|
||||||
</sectionGroup>
|
</sectionGroup>
|
||||||
</configSections>
|
</configSections>
|
||||||
<log4net>
|
<log4net>
|
||||||
@ -26,11 +26,47 @@
|
|||||||
<startup>
|
<startup>
|
||||||
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.8" />
|
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.8" />
|
||||||
</startup>
|
</startup>
|
||||||
<userSettings>
|
<runtime>
|
||||||
|
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
|
||||||
|
<dependentAssembly>
|
||||||
|
<assemblyIdentity name="log4net" publicKeyToken="669e0ddf0bb1aa2a" culture="neutral" />
|
||||||
|
<bindingRedirect oldVersion="0.0.0.0-3.1.0.0" newVersion="3.1.0.0" />
|
||||||
|
</dependentAssembly>
|
||||||
|
<dependentAssembly>
|
||||||
|
<assemblyIdentity name="System.Runtime.CompilerServices.Unsafe" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
|
||||||
|
<bindingRedirect oldVersion="0.0.0.0-4.0.6.0" newVersion="4.0.6.0" />
|
||||||
|
</dependentAssembly>
|
||||||
|
<dependentAssembly>
|
||||||
|
<assemblyIdentity name="System.Memory" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
|
||||||
|
<bindingRedirect oldVersion="0.0.0.0-4.0.1.2" newVersion="4.0.1.2" />
|
||||||
|
</dependentAssembly>
|
||||||
|
<dependentAssembly>
|
||||||
|
<assemblyIdentity name="System.Numerics.Vectors" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
|
||||||
|
<bindingRedirect oldVersion="0.0.0.0-4.1.4.0" newVersion="4.1.4.0" />
|
||||||
|
</dependentAssembly>
|
||||||
|
<dependentAssembly>
|
||||||
|
<assemblyIdentity name="System.Buffers" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
|
||||||
|
<bindingRedirect oldVersion="0.0.0.0-4.0.3.0" newVersion="4.0.3.0" />
|
||||||
|
</dependentAssembly>
|
||||||
|
</assemblyBinding>
|
||||||
|
</runtime>
|
||||||
|
<applicationSettings>
|
||||||
<bsmd.Tool.Properties.Settings>
|
<bsmd.Tool.Properties.Settings>
|
||||||
<setting name="ConnectionString" serializeAs="String">
|
<setting name="ConnectionString" serializeAs="String">
|
||||||
<value>replace me!</value>
|
<value>replace me!</value>
|
||||||
</setting>
|
</setting>
|
||||||
|
<setting name="EcholotOutputFolder" serializeAs="String">
|
||||||
|
<value />
|
||||||
|
</setting>
|
||||||
|
<setting name="EcholotMaxThreads" serializeAs="String">
|
||||||
|
<value>4</value>
|
||||||
|
</setting>
|
||||||
|
<setting name="HISNORD_Folder" serializeAs="String">
|
||||||
|
<value>C:\temp\hisnord</value>
|
||||||
|
</setting>
|
||||||
|
<setting name="DBH_Folder" serializeAs="String">
|
||||||
|
<value>C:\temp\dbh</value>
|
||||||
|
</setting>
|
||||||
</bsmd.Tool.Properties.Settings>
|
</bsmd.Tool.Properties.Settings>
|
||||||
</userSettings>
|
</applicationSettings>
|
||||||
</configuration>
|
</configuration>
|
||||||
|
|||||||
224
bsmd.Tool/Echolot.cs
Normal file
224
bsmd.Tool/Echolot.cs
Normal file
@ -0,0 +1,224 @@
|
|||||||
|
// Copyright (c) 2020- schick Informatik
|
||||||
|
// Description: The purpose of this tool is to evaluate files sent both through HIS-Nord and dbh
|
||||||
|
// to evaluate how many classes were sent at what time and by whom to the purpose of improved employee
|
||||||
|
// time planning
|
||||||
|
|
||||||
|
|
||||||
|
using ClosedXML.Excel;
|
||||||
|
using log4net;
|
||||||
|
using System;
|
||||||
|
using System.Collections.Concurrent;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.IO;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text.RegularExpressions;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using System.Xml.Linq;
|
||||||
|
|
||||||
|
namespace bsmd.Tool
|
||||||
|
{
|
||||||
|
internal static class Echolot
|
||||||
|
{
|
||||||
|
|
||||||
|
private static readonly ILog _log = LogManager.GetLogger(typeof(Echolot));
|
||||||
|
|
||||||
|
static readonly HashSet<string> ValidGroupingKeys = new HashSet<string>
|
||||||
|
{
|
||||||
|
"VISIT",
|
||||||
|
"TRANSIT",
|
||||||
|
"NOA_NOD",
|
||||||
|
"NOANOD",
|
||||||
|
"ATA",
|
||||||
|
"ATD",
|
||||||
|
"SEC",
|
||||||
|
"POBA",
|
||||||
|
"POBD",
|
||||||
|
"NAME",
|
||||||
|
"TIEFA",
|
||||||
|
"TIEFD",
|
||||||
|
"BKRA",
|
||||||
|
"BKRD",
|
||||||
|
"STAT",
|
||||||
|
"LADG",
|
||||||
|
"INFO",
|
||||||
|
"SERV",
|
||||||
|
"PRE72H",
|
||||||
|
"MDH",
|
||||||
|
"WAS",
|
||||||
|
"CREWA",
|
||||||
|
"PASA",
|
||||||
|
"BPOL",
|
||||||
|
"TOWA",
|
||||||
|
"TOWD",
|
||||||
|
"HAZA",
|
||||||
|
"HAZD",
|
||||||
|
"AGNT",
|
||||||
|
"STO",
|
||||||
|
"CREWD",
|
||||||
|
"PASD",
|
||||||
|
"WAS_RCPT"
|
||||||
|
};
|
||||||
|
|
||||||
|
static readonly HashSet<string> IgnoreGroupingKeys = new HashSet<string>
|
||||||
|
{
|
||||||
|
"VISIT",
|
||||||
|
"TRANSIT",
|
||||||
|
"ATA",
|
||||||
|
"ATD"
|
||||||
|
};
|
||||||
|
|
||||||
|
internal static void Evaluate(string outputFolder, int maxThreads)
|
||||||
|
{
|
||||||
|
DateTime executionTime = DateTime.Now;
|
||||||
|
|
||||||
|
#region first scan: dbh files
|
||||||
|
|
||||||
|
string inputFolder = Properties.Settings.Default.DBH_Folder;
|
||||||
|
var files = Directory.GetFiles(inputFolder, "*.xml");
|
||||||
|
var results = new ConcurrentBag<ResultRow>();
|
||||||
|
|
||||||
|
Parallel.ForEach(files, new ParallelOptions { MaxDegreeOfParallelism = maxThreads }, file =>
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
var doc = XDocument.Load(file);
|
||||||
|
|
||||||
|
// Look for a valid grouping key at the root level
|
||||||
|
var groupingElem = doc.Root.Elements()
|
||||||
|
.FirstOrDefault(x => ValidGroupingKeys.Contains(x.Name.LocalName) && !IgnoreGroupingKeys.Contains(x.Name.LocalName));
|
||||||
|
|
||||||
|
if (groupingElem == null)
|
||||||
|
{
|
||||||
|
_log.InfoFormat("skipping {0}", file);
|
||||||
|
return; // Skip file
|
||||||
|
}
|
||||||
|
|
||||||
|
var lastName = doc.Descendants("RPLastName").FirstOrDefault()?.Value?.Trim();
|
||||||
|
var firstName = doc.Descendants("RPFirstName").FirstOrDefault()?.Value?.Trim();
|
||||||
|
var timestampStr = doc.Descendants("Timestamp").FirstOrDefault()?.Value?.Trim();
|
||||||
|
|
||||||
|
DateTime timestamp = DateTime.Parse(timestampStr);
|
||||||
|
|
||||||
|
results.Add(new ResultRow
|
||||||
|
{
|
||||||
|
FirstName = firstName,
|
||||||
|
LastName = lastName,
|
||||||
|
Timestamp = timestamp,
|
||||||
|
WeekStart = GetWeekStart(timestamp, executionTime.DayOfWeek),
|
||||||
|
Provider = "DBH"
|
||||||
|
});
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
_log.Error(ex.ToString());
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region second scan: his-nord files
|
||||||
|
|
||||||
|
var inputFolder2 = Properties.Settings.Default.HISNORD_Folder;
|
||||||
|
var files2 = Directory.GetFiles(inputFolder2, "*.xml");
|
||||||
|
|
||||||
|
Parallel.ForEach(files2, new ParallelOptions { MaxDegreeOfParallelism = maxThreads }, file =>
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
var doc = XDocument.Load(file);
|
||||||
|
|
||||||
|
var match = Regex.Match(file, @"-([A-Z0-9_]+)\.xml$", RegexOptions.None);
|
||||||
|
|
||||||
|
string key = "";
|
||||||
|
if (match.Success)
|
||||||
|
{
|
||||||
|
key = match.Groups[1].Value;
|
||||||
|
}
|
||||||
|
|
||||||
|
if((key.Length == 0) || IgnoreGroupingKeys.Contains(key))
|
||||||
|
{
|
||||||
|
_log.InfoFormat("skipping {0}", file);
|
||||||
|
return; // Skip file
|
||||||
|
}
|
||||||
|
|
||||||
|
var username = doc.Descendants("firstname").FirstOrDefault()?.Value?.Trim();
|
||||||
|
if(username == null)
|
||||||
|
{
|
||||||
|
_log.WarnFormat("Username not found in file {0}", file);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
var splitname = username.Split(' ');
|
||||||
|
var lastName = splitname[1].Trim();
|
||||||
|
var firstName = splitname[0].Trim();
|
||||||
|
|
||||||
|
DateTime timestamp = File.GetCreationTime(file);
|
||||||
|
|
||||||
|
results.Add(new ResultRow
|
||||||
|
{
|
||||||
|
FirstName = firstName,
|
||||||
|
LastName = lastName,
|
||||||
|
Timestamp = timestamp,
|
||||||
|
WeekStart = GetWeekStart(timestamp, executionTime.DayOfWeek),
|
||||||
|
Provider = "HIS-NORD"
|
||||||
|
});
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
_log.Error(ex.ToString());
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
var grouped = results
|
||||||
|
.GroupBy(r => r.WeekStart)
|
||||||
|
.OrderBy(g => g.Key);
|
||||||
|
|
||||||
|
|
||||||
|
// Write Excel
|
||||||
|
string excelFile = Path.Combine(outputFolder, $"echolot_{executionTime:yyyyMMdd_HHmmss}.xlsx");
|
||||||
|
using (var workbook = new XLWorkbook())
|
||||||
|
{
|
||||||
|
foreach (var weekGroup in grouped)
|
||||||
|
{
|
||||||
|
var ws = workbook.Worksheets.Add(weekGroup.Key.ToString("yyyy-MM-dd"));
|
||||||
|
ws.Cell(1, 1).Value = "Firstname";
|
||||||
|
ws.Cell(1, 2).Value = "Lastname";
|
||||||
|
ws.Cell(1, 3).Value = "Count";
|
||||||
|
int row = 2;
|
||||||
|
|
||||||
|
var orderedGroups = weekGroup
|
||||||
|
.GroupBy(x => new { x.FirstName, x.LastName })
|
||||||
|
.OrderByDescending(g => g.Count()); // Use OrderBy for ascending
|
||||||
|
|
||||||
|
|
||||||
|
foreach (var nameGroup in orderedGroups)
|
||||||
|
{
|
||||||
|
ws.Cell(row, 1).Value = nameGroup.Key.FirstName;
|
||||||
|
ws.Cell(row, 2).Value = nameGroup.Key.LastName;
|
||||||
|
ws.Cell(row, 3).Value = nameGroup.Count();
|
||||||
|
row++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
workbook.SaveAs(excelFile);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static DateTime GetWeekStart(DateTime date, DayOfWeek weekStart)
|
||||||
|
{
|
||||||
|
int diff = (7 + (date.DayOfWeek - weekStart)) % 7;
|
||||||
|
return date.Date.AddDays(-1 * diff);
|
||||||
|
}
|
||||||
|
|
||||||
|
class ResultRow
|
||||||
|
{
|
||||||
|
public string FirstName { get; set; }
|
||||||
|
public string LastName { get; set; }
|
||||||
|
public DateTime Timestamp { get; set; }
|
||||||
|
public DateTime WeekStart { get; set; }
|
||||||
|
public string Provider { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -25,6 +25,18 @@ namespace bsmd.Tool
|
|||||||
[Option("locodes", HelpText = "use this flag if you want to import locodes")]
|
[Option("locodes", HelpText = "use this flag if you want to import locodes")]
|
||||||
public bool ImportLocodes { get; set; }
|
public bool ImportLocodes { get; set; }
|
||||||
|
|
||||||
|
[Option("echolot", HelpText = "use this flag to run the echolot output file evaluation")]
|
||||||
|
public bool Echolot { get; set; }
|
||||||
|
|
||||||
|
[Option('i', "input_folder", HelpText = "Input folder")]
|
||||||
|
public string InputFolder { get; set; }
|
||||||
|
|
||||||
|
[Option('o', "output_folder", HelpText = "Output folder")]
|
||||||
|
public string OutputFolder { get; set; }
|
||||||
|
|
||||||
|
[Option("max_threads", HelpText = "Maximum amount of parallelism for folder parsing")]
|
||||||
|
public int? MaxThreads { get; set; }
|
||||||
|
|
||||||
[Option('s', "staledays", Default = 30, HelpText ="Delete files older than X days")]
|
[Option('s', "staledays", Default = 30, HelpText ="Delete files older than X days")]
|
||||||
public int StaleDays { get; set; }
|
public int StaleDays { get; set; }
|
||||||
|
|
||||||
|
|||||||
@ -1,4 +1,5 @@
|
|||||||
using CommandLine;
|
using bsmd.database;
|
||||||
|
using CommandLine;
|
||||||
using log4net;
|
using log4net;
|
||||||
using System;
|
using System;
|
||||||
|
|
||||||
@ -40,15 +41,24 @@ namespace bsmd.Tool
|
|||||||
LocodeSQliteImport.Import(o.LocodeDB, o.LocodeCSV);
|
LocodeSQliteImport.Import(o.LocodeDB, o.LocodeCSV);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if(o.Echolot)
|
||||||
|
{
|
||||||
|
string outputFolder = Properties.Settings.Default.EcholotOutputFolder;
|
||||||
|
if (!o.OutputFolder.IsNullOrEmpty())
|
||||||
|
outputFolder = o.OutputFolder;
|
||||||
|
int maxThreads = 2;
|
||||||
|
if (o.MaxThreads.HasValue) maxThreads = o.MaxThreads.Value;
|
||||||
|
Echolot.Evaluate(outputFolder, maxThreads);
|
||||||
|
}
|
||||||
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
log.Fatal(ex.ToString());
|
log.Fatal(ex.ToString());
|
||||||
|
Console.WriteLine(ex.Message);
|
||||||
result = 1;
|
result = 1;
|
||||||
}
|
}
|
||||||
Console.Read();
|
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
41
bsmd.Tool/Properties/Settings.Designer.cs
generated
41
bsmd.Tool/Properties/Settings.Designer.cs
generated
@ -12,7 +12,7 @@ namespace bsmd.Tool.Properties {
|
|||||||
|
|
||||||
|
|
||||||
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
|
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
|
||||||
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "16.10.0.0")]
|
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "17.14.0.0")]
|
||||||
internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
|
internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
|
||||||
|
|
||||||
private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
|
private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
|
||||||
@ -23,15 +23,48 @@ namespace bsmd.Tool.Properties {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
[global::System.Configuration.UserScopedSettingAttribute()]
|
[global::System.Configuration.ApplicationScopedSettingAttribute()]
|
||||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||||
[global::System.Configuration.DefaultSettingValueAttribute("replace me!")]
|
[global::System.Configuration.DefaultSettingValueAttribute("replace me!")]
|
||||||
public string ConnectionString {
|
public string ConnectionString {
|
||||||
get {
|
get {
|
||||||
return ((string)(this["ConnectionString"]));
|
return ((string)(this["ConnectionString"]));
|
||||||
}
|
}
|
||||||
set {
|
}
|
||||||
this["ConnectionString"] = value;
|
|
||||||
|
[global::System.Configuration.ApplicationScopedSettingAttribute()]
|
||||||
|
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||||
|
[global::System.Configuration.DefaultSettingValueAttribute("")]
|
||||||
|
public string EcholotOutputFolder {
|
||||||
|
get {
|
||||||
|
return ((string)(this["EcholotOutputFolder"]));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
[global::System.Configuration.ApplicationScopedSettingAttribute()]
|
||||||
|
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||||
|
[global::System.Configuration.DefaultSettingValueAttribute("4")]
|
||||||
|
public int EcholotMaxThreads {
|
||||||
|
get {
|
||||||
|
return ((int)(this["EcholotMaxThreads"]));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
[global::System.Configuration.ApplicationScopedSettingAttribute()]
|
||||||
|
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||||
|
[global::System.Configuration.DefaultSettingValueAttribute("C:\\temp\\hisnord")]
|
||||||
|
public string HISNORD_Folder {
|
||||||
|
get {
|
||||||
|
return ((string)(this["HISNORD_Folder"]));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
[global::System.Configuration.ApplicationScopedSettingAttribute()]
|
||||||
|
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||||
|
[global::System.Configuration.DefaultSettingValueAttribute("C:\\temp\\dbh")]
|
||||||
|
public string DBH_Folder {
|
||||||
|
get {
|
||||||
|
return ((string)(this["DBH_Folder"]));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -2,8 +2,20 @@
|
|||||||
<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)" GeneratedClassNamespace="bsmd.Tool.Properties" GeneratedClassName="Settings">
|
<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)" GeneratedClassNamespace="bsmd.Tool.Properties" GeneratedClassName="Settings">
|
||||||
<Profiles />
|
<Profiles />
|
||||||
<Settings>
|
<Settings>
|
||||||
<Setting Name="ConnectionString" Type="System.String" Scope="User">
|
<Setting Name="ConnectionString" Type="System.String" Scope="Application">
|
||||||
<Value Profile="(Default)">replace me!</Value>
|
<Value Profile="(Default)">replace me!</Value>
|
||||||
</Setting>
|
</Setting>
|
||||||
|
<Setting Name="EcholotOutputFolder" Type="System.String" Scope="Application">
|
||||||
|
<Value Profile="(Default)" />
|
||||||
|
</Setting>
|
||||||
|
<Setting Name="EcholotMaxThreads" Type="System.Int32" Scope="Application">
|
||||||
|
<Value Profile="(Default)">4</Value>
|
||||||
|
</Setting>
|
||||||
|
<Setting Name="HISNORD_Folder" Type="System.String" Scope="Application">
|
||||||
|
<Value Profile="(Default)">C:\temp\hisnord</Value>
|
||||||
|
</Setting>
|
||||||
|
<Setting Name="DBH_Folder" Type="System.String" Scope="Application">
|
||||||
|
<Value Profile="(Default)">C:\temp\dbh</Value>
|
||||||
|
</Setting>
|
||||||
</Settings>
|
</Settings>
|
||||||
</SettingsFile>
|
</SettingsFile>
|
||||||
@ -44,25 +44,62 @@
|
|||||||
<Reference Include="bsmd.database">
|
<Reference Include="bsmd.database">
|
||||||
<HintPath>..\bsmd.database\bin\Debug\bsmd.database.dll</HintPath>
|
<HintPath>..\bsmd.database\bin\Debug\bsmd.database.dll</HintPath>
|
||||||
</Reference>
|
</Reference>
|
||||||
|
<Reference Include="ClosedXML, Version=0.105.0.0, Culture=neutral, PublicKeyToken=fd1eb21b62ae805b, processorArchitecture=MSIL">
|
||||||
|
<HintPath>..\packages\ClosedXML.0.105.0\lib\netstandard2.0\ClosedXML.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="ClosedXML.Parser, Version=1.0.0.0, Culture=neutral, PublicKeyToken=1d5f7376574c51ec, processorArchitecture=MSIL">
|
||||||
|
<HintPath>..\packages\ClosedXML.Parser.2.0.0\lib\netstandard2.0\ClosedXML.Parser.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
<Reference Include="CommandLine, Version=2.9.1.0, Culture=neutral, PublicKeyToken=5a870481e358d379, processorArchitecture=MSIL">
|
<Reference Include="CommandLine, Version=2.9.1.0, Culture=neutral, PublicKeyToken=5a870481e358d379, processorArchitecture=MSIL">
|
||||||
<HintPath>..\packages\CommandLineParser.2.9.1\lib\net461\CommandLine.dll</HintPath>
|
<HintPath>..\packages\CommandLineParser.2.9.1\lib\net461\CommandLine.dll</HintPath>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="log4net, Version=2.0.15.0, Culture=neutral, PublicKeyToken=669e0ddf0bb1aa2a, processorArchitecture=MSIL">
|
<Reference Include="DocumentFormat.OpenXml, Version=3.1.1.0, Culture=neutral, PublicKeyToken=8fb06cb64d019a17, processorArchitecture=MSIL">
|
||||||
<HintPath>..\packages\log4net.2.0.15\lib\net45\log4net.dll</HintPath>
|
<HintPath>..\packages\DocumentFormat.OpenXml.3.1.1\lib\net46\DocumentFormat.OpenXml.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="DocumentFormat.OpenXml.Framework, Version=3.1.1.0, Culture=neutral, PublicKeyToken=8fb06cb64d019a17, processorArchitecture=MSIL">
|
||||||
|
<HintPath>..\packages\DocumentFormat.OpenXml.Framework.3.1.1\lib\net46\DocumentFormat.OpenXml.Framework.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="ExcelNumberFormat, Version=1.1.0.0, Culture=neutral, PublicKeyToken=23c6f5d73be07eca, processorArchitecture=MSIL">
|
||||||
|
<HintPath>..\packages\ExcelNumberFormat.1.1.0\lib\net20\ExcelNumberFormat.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="log4net, Version=3.1.0.0, Culture=neutral, PublicKeyToken=669e0ddf0bb1aa2a, processorArchitecture=MSIL">
|
||||||
|
<HintPath>..\packages\log4net.3.1.0\lib\net462\log4net.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="Microsoft.Bcl.HashCode, Version=1.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
|
||||||
|
<HintPath>..\packages\Microsoft.Bcl.HashCode.1.1.1\lib\net461\Microsoft.Bcl.HashCode.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="RBush, Version=4.0.0.0, Culture=neutral, PublicKeyToken=c77e27b81f4d0187, processorArchitecture=MSIL">
|
||||||
|
<HintPath>..\packages\RBush.Signed.4.0.0\lib\net47\RBush.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="SixLabors.Fonts, Version=1.0.0.0, Culture=neutral, PublicKeyToken=d998eea7b14cab13, processorArchitecture=MSIL">
|
||||||
|
<HintPath>..\packages\SixLabors.Fonts.1.0.0\lib\netstandard2.0\SixLabors.Fonts.dll</HintPath>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="System" />
|
<Reference Include="System" />
|
||||||
|
<Reference Include="System.Buffers, Version=4.0.3.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
|
||||||
|
<HintPath>..\packages\System.Buffers.4.5.1\lib\net461\System.Buffers.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
<Reference Include="System.Configuration" />
|
<Reference Include="System.Configuration" />
|
||||||
<Reference Include="System.Core" />
|
<Reference Include="System.Core" />
|
||||||
<Reference Include="System.Data.SQLite, Version=1.0.117.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139, processorArchitecture=MSIL">
|
<Reference Include="System.Data.SQLite, Version=1.0.119.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139, processorArchitecture=MSIL">
|
||||||
<HintPath>..\packages\Stub.System.Data.SQLite.Core.NetFramework.1.0.117.0\lib\net46\System.Data.SQLite.dll</HintPath>
|
<HintPath>..\packages\Stub.System.Data.SQLite.Core.NetFramework.1.0.119.0\lib\net46\System.Data.SQLite.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="System.Memory, Version=4.0.1.2, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
|
||||||
|
<HintPath>..\packages\System.Memory.4.5.5\lib\net461\System.Memory.dll</HintPath>
|
||||||
</Reference>
|
</Reference>
|
||||||
<Reference Include="System.Numerics" />
|
<Reference Include="System.Numerics" />
|
||||||
|
<Reference Include="System.Numerics.Vectors, Version=4.1.4.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
||||||
|
<HintPath>..\packages\System.Numerics.Vectors.4.5.0\lib\net46\System.Numerics.Vectors.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="System.Runtime.CompilerServices.Unsafe, Version=4.0.6.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
||||||
|
<HintPath>..\packages\System.Runtime.CompilerServices.Unsafe.4.7.0\lib\netstandard2.0\System.Runtime.CompilerServices.Unsafe.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
<Reference Include="System.Web" />
|
<Reference Include="System.Web" />
|
||||||
<Reference Include="System.Xml.Linq" />
|
<Reference Include="System.Xml.Linq" />
|
||||||
<Reference Include="System.Data.DataSetExtensions" />
|
<Reference Include="System.Data.DataSetExtensions" />
|
||||||
<Reference Include="Microsoft.CSharp" />
|
<Reference Include="Microsoft.CSharp" />
|
||||||
<Reference Include="System.Data" />
|
<Reference Include="System.Data" />
|
||||||
<Reference Include="System.Xml" />
|
<Reference Include="System.Xml" />
|
||||||
|
<Reference Include="WindowsBase" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Compile Include="..\bsmd.database\Properties\AssemblyProductInfo.cs">
|
<Compile Include="..\bsmd.database\Properties\AssemblyProductInfo.cs">
|
||||||
@ -76,6 +113,7 @@
|
|||||||
</Compile>
|
</Compile>
|
||||||
<Compile Include="CheckRules.cs" />
|
<Compile Include="CheckRules.cs" />
|
||||||
<Compile Include="CleanupFiles.cs" />
|
<Compile Include="CleanupFiles.cs" />
|
||||||
|
<Compile Include="Echolot.cs" />
|
||||||
<Compile Include="LocodeSQliteImport.cs" />
|
<Compile Include="LocodeSQliteImport.cs" />
|
||||||
<Compile Include="Options.cs" />
|
<Compile Include="Options.cs" />
|
||||||
<Compile Include="Program.cs" />
|
<Compile Include="Program.cs" />
|
||||||
@ -89,6 +127,7 @@
|
|||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<None Include="App.config" />
|
<None Include="App.config" />
|
||||||
<None Include="..\bsmdKey.snk" />
|
<None Include="..\bsmdKey.snk" />
|
||||||
|
<None Include="bsmd.Tool.licenseheader" />
|
||||||
<None Include="packages.config" />
|
<None Include="packages.config" />
|
||||||
<None Include="Properties\Settings.settings">
|
<None Include="Properties\Settings.settings">
|
||||||
<Generator>SettingsSingleFileGenerator</Generator>
|
<Generator>SettingsSingleFileGenerator</Generator>
|
||||||
@ -96,12 +135,12 @@
|
|||||||
</None>
|
</None>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||||
<Import Project="..\packages\Stub.System.Data.SQLite.Core.NetFramework.1.0.117.0\build\net46\Stub.System.Data.SQLite.Core.NetFramework.targets" Condition="Exists('..\packages\Stub.System.Data.SQLite.Core.NetFramework.1.0.117.0\build\net46\Stub.System.Data.SQLite.Core.NetFramework.targets')" />
|
<Import Project="..\packages\Stub.System.Data.SQLite.Core.NetFramework.1.0.119.0\build\net46\Stub.System.Data.SQLite.Core.NetFramework.targets" Condition="Exists('..\packages\Stub.System.Data.SQLite.Core.NetFramework.1.0.119.0\build\net46\Stub.System.Data.SQLite.Core.NetFramework.targets')" />
|
||||||
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
|
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
|
<ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<Error Condition="!Exists('..\packages\Stub.System.Data.SQLite.Core.NetFramework.1.0.117.0\build\net46\Stub.System.Data.SQLite.Core.NetFramework.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Stub.System.Data.SQLite.Core.NetFramework.1.0.117.0\build\net46\Stub.System.Data.SQLite.Core.NetFramework.targets'))" />
|
<Error Condition="!Exists('..\packages\Stub.System.Data.SQLite.Core.NetFramework.1.0.119.0\build\net46\Stub.System.Data.SQLite.Core.NetFramework.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Stub.System.Data.SQLite.Core.NetFramework.1.0.119.0\build\net46\Stub.System.Data.SQLite.Core.NetFramework.targets'))" />
|
||||||
</Target>
|
</Target>
|
||||||
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
|
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
|
||||||
Other similar extension points exist, see Microsoft.Common.targets.
|
Other similar extension points exist, see Microsoft.Common.targets.
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<Project ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
<Project ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|AnyCPU'">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|AnyCPU'">
|
||||||
<StartArguments>--locodes --csv="C:\svn_lager\bsmd\nsw\Archiv\2022-2.UNLOCODE.all.csv" --db "C:\git_lager\git_bsmd\misc\db.sqlite"</StartArguments>
|
<StartArguments>--echolot --output_folder="C:\temp"</StartArguments>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
</Project>
|
</Project>
|
||||||
14
bsmd.Tool/bsmd.Tool.licenseheader
Normal file
14
bsmd.Tool/bsmd.Tool.licenseheader
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
extensions: designer.cs generated.cs
|
||||||
|
extensions: .cs .cpp .h
|
||||||
|
// Copyright (c) 2020- schick Informatik
|
||||||
|
// Description:
|
||||||
|
//
|
||||||
|
|
||||||
|
extensions: .aspx .ascx
|
||||||
|
<%--
|
||||||
|
Copyright (c) 2020- schick Informatik
|
||||||
|
--%>
|
||||||
|
extensions: .xml .config .xsd
|
||||||
|
<!--
|
||||||
|
Copyright (c) 2020- schick Informatik
|
||||||
|
-->
|
||||||
@ -1,7 +1,19 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<packages>
|
<packages>
|
||||||
|
<package id="ClosedXML" version="0.105.0" targetFramework="net48" />
|
||||||
|
<package id="ClosedXML.Parser" version="2.0.0" targetFramework="net48" />
|
||||||
<package id="CommandLineParser" version="2.9.1" targetFramework="net48" />
|
<package id="CommandLineParser" version="2.9.1" targetFramework="net48" />
|
||||||
<package id="log4net" version="2.0.15" targetFramework="net48" />
|
<package id="DocumentFormat.OpenXml" version="3.1.1" targetFramework="net48" />
|
||||||
<package id="Stub.System.Data.SQLite.Core.NetFramework" version="1.0.117.0" targetFramework="net48" />
|
<package id="DocumentFormat.OpenXml.Framework" version="3.1.1" targetFramework="net48" />
|
||||||
<package id="System.Data.SQLite.Core" version="1.0.117.0" targetFramework="net48" />
|
<package id="ExcelNumberFormat" version="1.1.0" targetFramework="net48" />
|
||||||
|
<package id="log4net" version="3.1.0" targetFramework="net48" />
|
||||||
|
<package id="Microsoft.Bcl.HashCode" version="1.1.1" targetFramework="net48" />
|
||||||
|
<package id="RBush.Signed" version="4.0.0" targetFramework="net48" />
|
||||||
|
<package id="SixLabors.Fonts" version="1.0.0" targetFramework="net48" />
|
||||||
|
<package id="Stub.System.Data.SQLite.Core.NetFramework" version="1.0.119.0" targetFramework="net48" />
|
||||||
|
<package id="System.Buffers" version="4.5.1" targetFramework="net48" />
|
||||||
|
<package id="System.Data.SQLite.Core" version="1.0.119.0" targetFramework="net48" />
|
||||||
|
<package id="System.Memory" version="4.5.5" targetFramework="net48" />
|
||||||
|
<package id="System.Numerics.Vectors" version="4.5.0" targetFramework="net48" />
|
||||||
|
<package id="System.Runtime.CompilerServices.Unsafe" version="4.7.0" targetFramework="net48" />
|
||||||
</packages>
|
</packages>
|
||||||
Loading…
Reference in New Issue
Block a user