diff --git a/Business/Vorgang.cs b/Business/Vorgang.cs
index e8caa08..8ffcea0 100644
--- a/Business/Vorgang.cs
+++ b/Business/Vorgang.cs
@@ -108,7 +108,8 @@ namespace MergeCMInpro.Business
byte[] tmpHash;
tmpDt = ASCIIEncoding.ASCII.GetBytes(dt);
- tmpHash = new MD5CryptoServiceProvider().ComputeHash(tmpDt);
+ tmpHash = MD5.Create().ComputeHash(tmpDt);
+ //tmpHash = new MD5CryptoServiceProvider().ComputeHash(tmpDt);
StringBuilder res = new StringBuilder(tmpHash.Length);
for (int i = 0; i < tmpHash.Length; i++)
diff --git a/MergeCMInpro.csproj b/MergeCMInpro.csproj
index 3cd4911..b6c80ba 100644
--- a/MergeCMInpro.csproj
+++ b/MergeCMInpro.csproj
@@ -2,7 +2,7 @@
Exe
- netcoreapp3.1
+ net9.0
embedded
AnyCPU;x86
@@ -30,8 +30,8 @@
-
-
+
+
@@ -39,5 +39,4 @@
Always
-
diff --git a/MergeCMInpro.sln b/MergeCMInpro.sln
index f7ff4dc..44b95c3 100644
--- a/MergeCMInpro.sln
+++ b/MergeCMInpro.sln
@@ -5,8 +5,6 @@ VisualStudioVersion = 17.0.32126.317
MinimumVisualStudioVersion = 10.0.40219.1
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "MergeCMInpro", "MergeCMInpro.csproj", "{0798D653-CA13-4E5D-8A9E-4D8A3ADA4D1A}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MergeCMInpro.Testing", "..\MergeCMInpro.Testing\MergeCMInpro.Testing.csproj", "{F0F62B9F-4802-44AE-BFEC-7E20285ED2BE}"
-EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@@ -23,14 +21,6 @@ Global
{0798D653-CA13-4E5D-8A9E-4D8A3ADA4D1A}.Release|Any CPU.Build.0 = Release|Any CPU
{0798D653-CA13-4E5D-8A9E-4D8A3ADA4D1A}.Release|x86.ActiveCfg = Release|x86
{0798D653-CA13-4E5D-8A9E-4D8A3ADA4D1A}.Release|x86.Build.0 = Release|x86
- {F0F62B9F-4802-44AE-BFEC-7E20285ED2BE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {F0F62B9F-4802-44AE-BFEC-7E20285ED2BE}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {F0F62B9F-4802-44AE-BFEC-7E20285ED2BE}.Debug|x86.ActiveCfg = Debug|Any CPU
- {F0F62B9F-4802-44AE-BFEC-7E20285ED2BE}.Debug|x86.Build.0 = Debug|Any CPU
- {F0F62B9F-4802-44AE-BFEC-7E20285ED2BE}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {F0F62B9F-4802-44AE-BFEC-7E20285ED2BE}.Release|Any CPU.Build.0 = Release|Any CPU
- {F0F62B9F-4802-44AE-BFEC-7E20285ED2BE}.Release|x86.ActiveCfg = Release|Any CPU
- {F0F62B9F-4802-44AE-BFEC-7E20285ED2BE}.Release|x86.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
diff --git a/Program.cs b/Program.cs
index cb58c40..487aba5 100644
--- a/Program.cs
+++ b/Program.cs
@@ -24,7 +24,7 @@ namespace MergeCMInpro
//testing
//csvPath = Path.Combine(Directory.GetFiles(@"\\fsdeg002\DatenStA61_S\Bauvorhaben\0_SAGA\815.922 - 819.917 SAGA HD 21 2021_09_27_Testing", "*.csv").FirstOrDefault());
- //csvPath = Path.Combine(Directory.GetFiles(@"C:\Testing\MergeInpro", "*.csv").FirstOrDefault());
+ //csvPath = Path.Combine(Directory.GetFiles(@"E:\TestData\MergeCMInpro", "*.csv").FirstOrDefault());
string pathOutputFileCM = Path.Combine(Directory.GetParent(csvPath).FullName, "outputCM.csv");
diff --git a/Vorgang.cs b/Vorgang.cs
deleted file mode 100644
index 86a261c..0000000
--- a/Vorgang.cs
+++ /dev/null
@@ -1,278 +0,0 @@
-using NLog;
-using System;
-using System.Collections.Generic;
-using System.IO;
-using System.Linq;
-using System.Security.Cryptography;
-using System.Text;
-using System.Text.RegularExpressions;
-using System.Threading.Tasks;
-
-namespace Scan2Compress.Business
-{
- public sealed class Vorgang
- {
- #region Fields
- private static readonly Logger _logger = NLog.LogManager.GetCurrentClassLogger();
-
- private string aktenzeichen;
- #endregion
- //TODO: fehlende Felder aus den CM und Inpro hinzufügen
- #region Properties
- public DateTime Enddatum { get; set; }
- public DateTime Eingangsdatum { get; set; }
- public string BeschreibungVorgang { get; set; }
- public string Checkliste { get; set; }
- public string VorgangsDefinition { get; set; }
- public int Id { get; set; }
-
- public string Aktenzeichen
- {
- get
- {
- return aktenzeichen;
- }
- set
- {
- aktenzeichen = value;
- if (!aktenzeichen.Contains("/"))
- {
- aktenzeichen = ReplaceHiphenWithSlash(value);
- }
- }
- }
-
- public string FameId { get; set; }
-
- public string DocsSZ { get; set; }
-
- public string DocType { get; set; }
-
- public static Dictionary Strassen { get; set; }
-
- public string IdStrasse { get; set; }
-
- public string Strasse1 { get; set; }
-
- public string Hausnummer1Von { get; set; }
-
- public string Hausnummer1Bis { get; set; }
-
- public string HsNrVonZusatz { get; set; }
-
- public string HsNrBisZusatz { get; set; }
-
- public string Strasse2 { get; set; } = string.Empty;
-
- public string Hausnummer2 { get; set; } = string.Empty;
-
- public string Teil { get; set; }
-
- public string NamePDF { get; set; }
-
- public string AbsoluteFilePath { get; set; }
-
- public DateTime CreationDate { get; set; }
-
- public DateTime ScanDatum { get; set; } = DateTime.Now; //Erstelldatum
-
- #endregion Properties
-
- #region Contructor
-
- public Vorgang(string id, string aktenzeichen, string docType, string teil, string namePDF)
- {
- this.DocType = docType;
- this.Teil = teil;
- this.Aktenzeichen = aktenzeichen;
- this.NamePDF = namePDF;
- this.Id = Convert.ToInt32(id);
- this.FameId = GenerateFameId();
- }
-
- public Vorgang(string id, string aktenzeichen, string docType, string teil, string namePDF, string strasse1, string hausnummer1)
- {
- this.DocType = docType;
- this.Teil = teil;
- this.Aktenzeichen = aktenzeichen;
- this.NamePDF = namePDF;
- this.Id = Convert.ToInt32(id);
- this.FameId = GenerateFameId();
- this.Strasse1 = strasse1.Trim();
- this.Hausnummer1Von = hausnummer1;
- }
-
-
- public Vorgang()
- {
-
- }
-
- #endregion
-
- #region Methods
- private int GenerateVorgangId(int oldValue)
- {
- int newValue = oldValue + 1;
- return newValue;
- }
-
- //Erstelle Originalaktenzeichen
- private string ReplaceHiphenWithSlash(string aktenzeichen)
- {
- var regex = new Regex(Regex.Escape("-"));
- string res = regex.Replace(aktenzeichen, "/", 1);
- return res;
- }
-
- #region Extract Strassen
- private void ExtractStrasseHausnummer(string strasse)
- {
- string[] res = strasse.Split(' ');
- StringBuilder sb = new StringBuilder();
-
- try
- {
- //Abtrennen von Hausnummerzusätzen wie z.B. "4A" in "4" und "A" sowie Aufspaltung von Bereichen z.B. "4-8" in "4" und "8"
- for (int i = 0; i < res.Length; i++)
- {
- if (!char.IsDigit(res[i].ElementAt(0)) && char.IsDigit(res[i].ElementAt(1)))
- {
- DocsSZ = res[i];
- }
- else if (char.IsDigit(res[i].ElementAt(0)))
- {
- SplittedHausnummerZusatz(res[i]);
- }
- else
- {
- //z.B. Auf der Mühle, Herbert-Scholtissek-Str, Westholz etc.
- sb.Append(res[i]);
- sb.Append(" ");
- }
- }
- Strasse1 = sb.ToString().Trim();
-
- }
- catch (System.ArgumentOutOfRangeException ex)
- {
- _logger.Error(string.Concat(ex.Message, " Beim Extrahieren der Strasse/Hausnummer ist ein Fehler aufgetreten."));
- throw new ArgumentOutOfRangeException("Beim Extrahieren der Strasse1 ist ein Fehler aufgetreten.\n\nBitte Eingaben überprüfen.", ex);
- }
- catch (Exception ex)
- {
- _logger.Error(ex.Message);
- throw;
- }
- }
-
- private void SplittedStrasse2(string input)
- {
- string[] strasseHnr = input.Split(' ');
-
- StringBuilder builder = new StringBuilder();
- Hausnummer2 = strasseHnr.LastOrDefault();
-
- strasseHnr = strasseHnr.Take(strasseHnr.Length - 1).ToArray();
- for (int i = 0; i < strasseHnr.Length; i++)
- {
- if (i == strasseHnr.Length - 1)
- builder.Append(strasseHnr[i]);
- else
- builder.Append(string.Concat(strasseHnr[i], " "));
- }
- Strasse2 = builder.ToString();
- }
-
- private void SplittedHausnummerZusatz(string input)
- {
- string hausnummerZusatzVon = string.Empty;
- string hausnummerZusatzBis = string.Empty;
-
- Tuple result;
-
- if (input.Contains('-')) //13-15, 13a-15
- {
- hausnummerZusatzVon = input.Split('-').FirstOrDefault();
- hausnummerZusatzBis = input.Split('-').LastOrDefault();
- result = ExtractingZusatzFromHausnummer(hausnummerZusatzVon);
- Hausnummer1Von = result.Item1;
- HsNrVonZusatz = result.Item2;
- result = ExtractingZusatzFromHausnummer(hausnummerZusatzBis);
- Hausnummer1Bis = result.Item1;
- HsNrBisZusatz = result.Item2;
-
- if (HsNrBisZusatz.Length >= 2 || HsNrVonZusatz.Length >= 2)
- {
- HsNrVonZusatz = HsNrVonZusatz != string.Empty ? HsNrVonZusatz.FirstOrDefault().ToString() : string.Empty;
- HsNrBisZusatz = HsNrBisZusatz != string.Empty ? HsNrBisZusatz.LastOrDefault().ToString() : string.Empty;
- }
- }
- else //13
- {
- result = ExtractingZusatzFromHausnummer(input);
- Hausnummer1Von = result.Item1;
- HsNrBisZusatz = result.Item2;
- }
- }
-
- private Tuple ExtractingZusatzFromHausnummer(string input)
- {
- StringBuilder sbHausnummer = new StringBuilder();
- StringBuilder sbZusatz = new StringBuilder();
-
- for (int i = 0; i < input.Length; i++)
- {
- if (char.IsDigit(input[i]))
- {
- sbHausnummer.Append(input[i]);
- }
- else
- {
- sbZusatz.Append(input[i]);
- }
- }
- return new Tuple(sbHausnummer.ToString(), sbZusatz.ToString());
- }
- #endregion
-
-
- private string GenerateFameId()
- {
- string dt = DateTime.Now.ToString("ddMMyyhhmmssfff");
- byte[] tmpDt;
- byte[] tmpHash;
-
- tmpDt = ASCIIEncoding.ASCII.GetBytes(dt);
- tmpHash = new MD5CryptoServiceProvider().ComputeHash(tmpDt);
-
- StringBuilder res = new StringBuilder(tmpHash.Length);
- for (int i = 0; i < tmpHash.Length; i++)
- {
- res.Append(tmpHash[i].ToString("X2"));
- }
- string tmp = res.ToString().ToLower().Substring(res.Length - 12);
- _logger.Info("FameId " + tmp + " für " + dt + " und " + Aktenzeichen + " erzeugt.");
- return tmp;
- }
-
- public override string ToString()
- {
- return Id.ToString() + ";" + Aktenzeichen + ";" + Checkliste + ";" + VorgangsDefinition + ";" + BeschreibungVorgang + ";" + Strasse1 + ";" + Hausnummer1Von + ";" + HsNrVonZusatz + ";" + Hausnummer1Bis + ";" + HsNrBisZusatz + ";" + Strasse2.Trim() + ";" + Hausnummer2 + ";" + Eingangsdatum.ToShortDateString() + ";" + FameId + ";" + Enddatum.ToShortDateString() + ";" + DocType + ";" + NamePDF;
- }
- //CM:
- //aktenzeichen
- //vorgangdefid VV
- //Vorgangsart Kanalakte
- //strasse 1
- //strasse 1 hausnummer
- //strasse 2
- //strasse 2 hausnummer
- //datumabschluss
- //fameid
- //dokumentdatum
- //langebzeichnung/dokumentbezeichnung in inpro
- //dokumentname mit Endung
- #endregion
- }
-}
\ No newline at end of file