Compare commits
2 Commits
dev-mkoebi
...
Standortän
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
7e3e99ad20 | ||
|
|
1905243a4a |
@@ -101,7 +101,6 @@ namespace MergeCMInpro.Business
|
|||||||
{
|
{
|
||||||
int count = 0;
|
int count = 0;
|
||||||
int countRows = File.ReadAllLines(path).Length;
|
int countRows = File.ReadAllLines(path).Length;
|
||||||
|
|
||||||
using (StreamReader sr = new StreamReader(path, System.Text.Encoding.GetEncoding("ISO-8859-1")))
|
using (StreamReader sr = new StreamReader(path, System.Text.Encoding.GetEncoding("ISO-8859-1")))
|
||||||
{
|
{
|
||||||
string[] arr = new string[10];
|
string[] arr = new string[10];
|
||||||
@@ -117,44 +116,22 @@ namespace MergeCMInpro.Business
|
|||||||
Console.WriteLine("\r{0}/{1} ", count, countRows);
|
Console.WriteLine("\r{0}/{1} ", count, countRows);
|
||||||
}
|
}
|
||||||
arr = sr.ReadLine().Split(";");
|
arr = sr.ReadLine().Split(";");
|
||||||
bool jpmFiles = arr[2].Contains(".jpm");
|
|
||||||
//Erstelle Basis-Vorgang aus den SAGA-Daten
|
//Erstelle Basis-Vorgang aus den SAGA-Daten
|
||||||
Vorgang v;
|
Vorgang v;
|
||||||
|
|
||||||
if(arr[2].Contains("70/"))
|
if(arr[2].Contains("70/"))
|
||||||
{
|
{
|
||||||
//arr[0]=ID z.B. 815922, arr[2]=AZ z.B. 61/5-3-048105, arr[3]=Strasse z.B. Westheck, arr[5]=DocType z.B. SCHRIFTVERKEHR, arr[6]=Teil z.B. 001, arr[8]=PDF z.B. 815922.pdf
|
//arr[0]=ID z.B. 815922, arr[2]=AZ z.B. 61/5-3-048105, arr[3]=Strasse z.B. Westheck, arr[5]=DocType z.B. SCHRIFTVERKEHR, arr[6]=Teil z.B. 001, arr[8]=PDF z.B. 815922.pdf
|
||||||
if (jpmFiles)
|
v = new Vorgang(arr[0], arr[2], string.Concat(arr[5], " Teil ", arr[6]), arr[6], arr[8], arr[3],arr[4]);
|
||||||
{
|
|
||||||
v = new Vorgang(arr[0], arr[2], string.Concat(arr[5], " Teil ", arr[6]), arr[6], arr[7], arr[3], arr[4]);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
v = new Vorgang(arr[0], arr[2], string.Concat(arr[5], " Teil ", arr[6]), arr[6], arr[7], arr[3], arr[4]);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (jpmFiles)
|
v = new Vorgang(arr[0], arr[2], string.Concat(arr[5], " Teil ", arr[6]), arr[6], arr[8]);
|
||||||
{
|
|
||||||
v = new Vorgang(arr[0], arr[2], string.Concat(arr[5], " Teil ", arr[6]), arr[6], arr[8]);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
v = new Vorgang(arr[0], arr[2], string.Concat(arr[5], " Teil ", arr[6]), arr[6], arr[7]);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#region PDF
|
#region PDF
|
||||||
if(jpmFiles)
|
v.AbsoluteFilePath = GetFullFilePath(arr[8], path); //arr[7]=jpm-Dateien
|
||||||
{
|
|
||||||
v.AbsoluteFilePath = GetFullFilePath(arr[8], path); //arr[7]=jpm-Dateien
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
v.AbsoluteFilePath = GetFullFilePath(arr[7], path);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (v.AbsoluteFilePath == string.Empty)
|
if (v.AbsoluteFilePath == string.Empty)
|
||||||
{
|
{
|
||||||
Console.WriteLine("Keine PDF-Dateien gefunden.");
|
Console.WriteLine("Keine PDF-Dateien gefunden.");
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ namespace MergeCMInpro.Business
|
|||||||
{
|
{
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public override string GenerateVorgang(Vorgang v)
|
public override string GenerateVorgang(Vorgang v)
|
||||||
{
|
{
|
||||||
StringBuilder sbCM = new StringBuilder();
|
StringBuilder sbCM = new StringBuilder();
|
||||||
@@ -32,28 +32,16 @@ namespace MergeCMInpro.Business
|
|||||||
//Langbezeichnung
|
//Langbezeichnung
|
||||||
string documentType = FileOperations.LowerDocumentType(v.DocType.Split(" ").FirstOrDefault());
|
string documentType = FileOperations.LowerDocumentType(v.DocType.Split(" ").FirstOrDefault());
|
||||||
sbCM.Append(string.Concat(documentType, " ", string.Concat(v.DocType.Split(" ").FirstOrDefault().Substring(0, 1), v.DocType.Split(" ").FirstOrDefault().Substring(1).ToLower()), " ", v.DocType.Split(" ", 2).Skip(1).FirstOrDefault(), ";"));
|
sbCM.Append(string.Concat(documentType, " ", string.Concat(v.DocType.Split(" ").FirstOrDefault().Substring(0, 1), v.DocType.Split(" ").FirstOrDefault().Substring(1).ToLower()), " ", v.DocType.Split(" ", 2).Skip(1).FirstOrDefault(), ";"));
|
||||||
|
|
||||||
string langBez = string.Empty;
|
|
||||||
|
|
||||||
try
|
string langBez = base.GenerateLangbezeichnungFromPath(v.AbsoluteFilePath);
|
||||||
{
|
|
||||||
langBez = base.GenerateLangbezeichnungFromPath(v.AbsoluteFilePath);
|
|
||||||
}
|
|
||||||
catch (ArgumentOutOfRangeException ex)
|
|
||||||
{
|
|
||||||
Console.WriteLine("ERROR: Wrong Path {0}. Please provide folder like '843.818 - 847.187 SAGA HD 28 2023_12_18'", Path.GetDirectoryName(v.AbsoluteFilePath));
|
|
||||||
}
|
|
||||||
catch (Exception ex)
|
|
||||||
{
|
|
||||||
Console.WriteLine(ex.Message);
|
|
||||||
}
|
|
||||||
//string langBez = base.GenerateLangbezeichnungFromPath(v.AbsoluteFilePath);
|
|
||||||
sbCM.Append(string.Concat(langBez, ";"));
|
sbCM.Append(string.Concat(langBez, ";"));
|
||||||
|
|
||||||
sbCM.Append(string.Concat(v.FameId, ".pdf"));
|
sbCM.Append(string.Concat(v.FameId, ".pdf"));
|
||||||
|
|
||||||
return sbCM.ToString();
|
return sbCM.ToString();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -37,11 +37,12 @@ namespace MergeCMInpro.Business
|
|||||||
sbStandort.Append(string.Concat(this.CID, ";"));//CID
|
sbStandort.Append(string.Concat(this.CID, ";"));//CID
|
||||||
sbStandort.Append(string.Concat(v.Aktenzeichen, ";"));//Vorgangsnummer
|
sbStandort.Append(string.Concat(v.Aktenzeichen, ";"));//Vorgangsnummer
|
||||||
sbStandort.Append(string.Concat(this.Sachbearbeiter, ";"));//Sachbearbeiter
|
sbStandort.Append(string.Concat(this.Sachbearbeiter, ";"));//Sachbearbeiter
|
||||||
|
sbStandort.Append(string.Concat(this.Bemerkung, ";"));//Bemerkung
|
||||||
sbStandort.Append(string.Concat(this.Standort, ";"));//Standort
|
sbStandort.Append(string.Concat(this.Standort, ";"));//Standort
|
||||||
sbStandort.Append(string.Concat(this.Entnahmedatum.ToShortDateString(), ";"));//Entnahmedatum -> Datum Tabelle
|
sbStandort.Append(string.Concat(this.Entnahmedatum.ToShortDateString(), ";"));//Entnahmedatum -> Datum Tabelle
|
||||||
sbStandort.Append(string.Concat(this.Entnahmezeit, ";"));//Entnahmezeit
|
sbStandort.Append(string.Concat(this.Entnahmezeit, ";"));//Entnahmezeit
|
||||||
sbStandort.Append(string.Concat(this.Entnahmedatum.ToShortDateString(), ";"));//Rückgabedatum=Entnahmedatum
|
sbStandort.Append(string.Concat(this.Entnahmedatum.ToShortDateString(), ";"));//Rückgabedatum=Entnahmedatum
|
||||||
sbStandort.Append(string.Concat(this.Entnahmezeit, ";"));//Rückgabezeit=Entnahmezeit
|
sbStandort.Append(this.Entnahmezeit);//Rückgabezeit=Entnahmezeit
|
||||||
|
|
||||||
return sbStandort.ToString();
|
return sbStandort.ToString();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,20 +1,43 @@
|
|||||||
<Project Sdk="Microsoft.NET.Sdk">
|
<Project Sdk="Microsoft.NET.Sdk">
|
||||||
|
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<OutputType>Exe</OutputType>
|
<OutputType>Exe</OutputType>
|
||||||
<TargetFramework>netcoreapp3.1</TargetFramework>
|
<TargetFramework>netcoreapp3.1</TargetFramework>
|
||||||
|
<DebugType>embedded</DebugType>
|
||||||
|
<Platforms>AnyCPU;x86</Platforms>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Compile Remove="x64\**" />
|
<None Remove="NLog.config" />
|
||||||
<EmbeddedResource Remove="x64\**" />
|
|
||||||
<None Remove="x64\**" />
|
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<PackageReference Include="NLog" Version="4.7.11" />
|
<COMReference Include="Microsoft.Office.Interop.Excel">
|
||||||
<PackageReference Include="ODP.NetCore" Version="2.0.12" />
|
<WrapperTool>tlbimp</WrapperTool>
|
||||||
<PackageReference Include="System.Data.SqlClient" Version="4.8.3" />
|
<VersionMinor>8</VersionMinor>
|
||||||
|
<VersionMajor>1</VersionMajor>
|
||||||
|
<Guid>00020813-0000-0000-c000-000000000046</Guid>
|
||||||
|
<Lcid>0</Lcid>
|
||||||
|
<Isolated>false</Isolated>
|
||||||
|
<EmbedInteropTypes>true</EmbedInteropTypes>
|
||||||
|
</COMReference>
|
||||||
|
</ItemGroup>
|
||||||
|
|
||||||
|
<ItemGroup>
|
||||||
|
<Content Include="NLog.config">
|
||||||
|
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||||
|
</Content>
|
||||||
|
</ItemGroup>
|
||||||
|
|
||||||
|
<ItemGroup>
|
||||||
|
<PackageReference Include="NLog" Version="5.0.4" />
|
||||||
|
<PackageReference Include="Oracle.ManagedDataAccess.Core" Version="3.21.70" />
|
||||||
|
</ItemGroup>
|
||||||
|
|
||||||
|
<ItemGroup>
|
||||||
|
<None Update="config.txt">
|
||||||
|
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||||
|
</None>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
</Project>
|
</Project>
|
||||||
|
|||||||
@@ -1,25 +1,41 @@
|
|||||||
|
|
||||||
Microsoft Visual Studio Solution File, Format Version 12.00
|
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||||
# Visual Studio Version 17
|
# Visual Studio Version 17
|
||||||
VisualStudioVersion = 17.1.32319.34
|
VisualStudioVersion = 17.0.32126.317
|
||||||
MinimumVisualStudioVersion = 10.0.40219.1
|
MinimumVisualStudioVersion = 10.0.40219.1
|
||||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "MergeCMInpro", "MergeCMInpro.csproj", "{F50C40BA-1861-48DD-B5E7-9638439E15E1}"
|
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
|
EndProject
|
||||||
Global
|
Global
|
||||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||||
Debug|Any CPU = Debug|Any CPU
|
Debug|Any CPU = Debug|Any CPU
|
||||||
|
Debug|x86 = Debug|x86
|
||||||
Release|Any CPU = Release|Any CPU
|
Release|Any CPU = Release|Any CPU
|
||||||
|
Release|x86 = Release|x86
|
||||||
EndGlobalSection
|
EndGlobalSection
|
||||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||||
{F50C40BA-1861-48DD-B5E7-9638439E15E1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
{0798D653-CA13-4E5D-8A9E-4D8A3ADA4D1A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
{F50C40BA-1861-48DD-B5E7-9638439E15E1}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
{0798D653-CA13-4E5D-8A9E-4D8A3ADA4D1A}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
{F50C40BA-1861-48DD-B5E7-9638439E15E1}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
{0798D653-CA13-4E5D-8A9E-4D8A3ADA4D1A}.Debug|x86.ActiveCfg = Debug|x86
|
||||||
{F50C40BA-1861-48DD-B5E7-9638439E15E1}.Release|Any CPU.Build.0 = Release|Any CPU
|
{0798D653-CA13-4E5D-8A9E-4D8A3ADA4D1A}.Debug|x86.Build.0 = Debug|x86
|
||||||
|
{0798D653-CA13-4E5D-8A9E-4D8A3ADA4D1A}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{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
|
EndGlobalSection
|
||||||
GlobalSection(SolutionProperties) = preSolution
|
GlobalSection(SolutionProperties) = preSolution
|
||||||
HideSolutionNode = FALSE
|
HideSolutionNode = FALSE
|
||||||
EndGlobalSection
|
EndGlobalSection
|
||||||
GlobalSection(ExtensibilityGlobals) = postSolution
|
GlobalSection(ExtensibilityGlobals) = postSolution
|
||||||
SolutionGuid = {A8D0CA7E-16F2-47DA-92BA-34B69950C507}
|
SolutionGuid = {512F540C-4375-4C7D-B8F4-9D45AE50AA94}
|
||||||
EndGlobalSection
|
EndGlobalSection
|
||||||
EndGlobal
|
EndGlobal
|
||||||
|
|||||||
362
Program.cs
362
Program.cs
@@ -1,278 +1,136 @@
|
|||||||
using System;
|
using MergeCMInpro.Business;
|
||||||
|
using MergeCMInpro.Data;
|
||||||
|
using NLog;
|
||||||
|
using System;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using Scan2Compress.Business;
|
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Data.SqlClient;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Text;
|
|
||||||
using System.Threading;
|
|
||||||
|
|
||||||
namespace MergeCMInpro
|
namespace MergeCMInpro
|
||||||
{
|
{
|
||||||
class Program
|
static class Program
|
||||||
{
|
{
|
||||||
static List<string> vorgängeCM = new List<string>();
|
private static readonly Logger _logger = NLog.LogManager.GetCurrentClassLogger();
|
||||||
static List<string> vorgängeInpro = new List<string>();
|
|
||||||
|
static string csvPath = String.Empty;
|
||||||
static string destinationFilePath = @"\\asbgvp02\Archivtransfer\";
|
|
||||||
|
|
||||||
static string constring = "Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=dborap01.stadtdo.de)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=bgvp.stadtdo.de)));user id=leser;password=leser;";
|
|
||||||
|
|
||||||
static string csvPath = Path.Combine(Directory.GetFiles(Environment.CurrentDirectory, "*.csv").FirstOrDefault());
|
|
||||||
|
|
||||||
//static string csvPath = Path.Combine(Directory.GetFiles(@"S:\Bauvorhaben\0_SAGA\815.922 - 819.917 SAGA HD 21 2021_09_27", "*.csv").FirstOrDefault());
|
|
||||||
|
|
||||||
static string pathOutputFileCM = Path.Combine(Directory.GetParent(csvPath).FullName, "outputCM.csv");
|
|
||||||
static string pathOutputFileInpro = Path.Combine(Directory.GetParent(csvPath).FullName, "outputInpro.csv");
|
|
||||||
|
|
||||||
static void Main(string[] args)
|
static void Main(string[] args)
|
||||||
{
|
|
||||||
Console.WriteLine("Working, please wait... or get yourself a tea.");
|
|
||||||
SplitRow(csvPath);
|
|
||||||
using (StreamWriter sw = new StreamWriter(pathOutputFileCM))
|
|
||||||
{
|
|
||||||
foreach (var item in vorgängeCM)
|
|
||||||
{
|
|
||||||
sw.WriteLine(item.ToString());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
using (StreamWriter sw = new StreamWriter(pathOutputFileInpro))
|
|
||||||
{
|
|
||||||
foreach (var item in vorgängeInpro)
|
|
||||||
{
|
|
||||||
sw.WriteLine(item.ToString());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
Console.WriteLine("{0} created.", pathOutputFileCM);
|
|
||||||
Console.WriteLine("{0} created.", pathOutputFileInpro);
|
|
||||||
Console.WriteLine("");
|
|
||||||
Console.WriteLine("You may close this window now.");
|
|
||||||
Console.ReadLine();
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void SplitRow(string path)
|
|
||||||
{
|
|
||||||
int count = 0;
|
|
||||||
int countRows = File.ReadAllLines(path).Length;
|
|
||||||
using (StreamReader sr = new StreamReader(path, System.Text.Encoding.GetEncoding("ISO-8859-1")))
|
|
||||||
{
|
|
||||||
string[] arr = new string[10];
|
|
||||||
while (!sr.EndOfStream)
|
|
||||||
{
|
|
||||||
count++;
|
|
||||||
if (count != countRows)
|
|
||||||
{
|
|
||||||
Console.Write("\r{0}/{1} ", count, countRows);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
Console.WriteLine("\r{0}/{1} ", count, countRows);
|
|
||||||
}
|
|
||||||
arr = sr.ReadLine().Split(";");
|
|
||||||
Vorgang v = new Vorgang(arr[0], arr[2], string.Concat(arr[5], " Teil ", arr[6]), arr[6], arr[8]);
|
|
||||||
v.AbsoluteFilePath = GetFullFilePath(arr[8]); //arr[7]=jpm-Dateien
|
|
||||||
if (v.AbsoluteFilePath == string.Empty)
|
|
||||||
{
|
|
||||||
Console.WriteLine("Datei {0} nicht gefunden", path);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
v.CreationDate = GetCreationDate(v.AbsoluteFilePath);
|
|
||||||
|
|
||||||
ConnectAndExecute(v);
|
|
||||||
|
|
||||||
//Backup JPM-Files
|
|
||||||
var z = ExtractFilePath(v.AbsoluteFilePath);
|
|
||||||
var folder = string.Concat("Sicherungen jpm ", z.ElementAt(0), " bis ", z.ElementAt(2));
|
|
||||||
CopySourceFileToDestination(GetFullFilePath(arr[7]), Path.Combine(destinationFilePath, "Archiv", folder), arr[7]);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
static string[] ExtractFilePath(string path)
|
|
||||||
{
|
|
||||||
var splittedAbsolutePath = path.Split("\\").SkipLast(2).LastOrDefault();
|
|
||||||
return splittedAbsolutePath.Split(" ");
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public static DateTime GetCreationDate(string file)
|
|
||||||
{
|
|
||||||
FileInfo fi = new FileInfo(file);
|
|
||||||
return fi.CreationTime;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static string GetFullFilePath(string file)
|
|
||||||
{
|
|
||||||
string currentDirectory = Directory.GetParent(csvPath).FullName; //Directory.GetCurrentDirectory();
|
|
||||||
string res = string.Empty;
|
|
||||||
res = Directory.GetFiles(currentDirectory, file, SearchOption.AllDirectories).FirstOrDefault();
|
|
||||||
if (res == null)
|
|
||||||
return string.Empty;
|
|
||||||
else
|
|
||||||
{
|
|
||||||
//res = Directory.GetParent(res).Parent.Name.Split('\\').LastOrDefault();
|
|
||||||
return res;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public static string GenerateQuery(string az)
|
|
||||||
{
|
|
||||||
string sqlQuery = "SELECT "
|
|
||||||
+ "INPROP.PMGTVVORGANG.VORGANGID, "
|
|
||||||
+ "INPROP.PMGTVVORGANG.VORGANGDEFID, "
|
|
||||||
+ "INPROP.PMVBCHECKLIST.CHECKLISTID, "
|
|
||||||
+ "INPROP.PMVBCHECKLIST.DESCRIPTION, "
|
|
||||||
+ "INPROP.PMGTVVORGANG.STRASSE1ID, "
|
|
||||||
+ "INPROP.PMGTVVORGANG.STRASSE1, "
|
|
||||||
+ "INPROP.PMGTVVORGANG.HAUSNUMMER1, "
|
|
||||||
+ "INPROP.PMGTVVORGANG.HSNRVON, "
|
|
||||||
+ "INPROP.PMGTVVORGANG.HSNRVONZUSATZ, "
|
|
||||||
+ "INPROP.PMGTVVORGANG.HSNRBIS, "
|
|
||||||
+ "INPROP.PMGTVVORGANG.HSNRBISZUSATZ, "
|
|
||||||
+ "INPROP.PMGTVVORGANG.STRASSE2, "
|
|
||||||
+ "INPROP.PMGTVVORGANG.HAUSNUMMER2, "
|
|
||||||
+ "INPROP.PMGTVVORGANG.DATUMEINGANG, "
|
|
||||||
+ "INPROP.PMGTVVORGANG.DATUMABSCHLUSS "
|
|
||||||
+ "FROM INPROP.PMGTVVORGANG "
|
|
||||||
+ "INNER JOIN INPROP.PMVBCHECKLIST ON INPROP.PMGTVVORGANG.CHECKID = INPROP.PMVBCHECKLIST.CHECKLISTID "
|
|
||||||
+ "WHERE INPROP.PMGTVVORGANG.VORGANGID='" + az + "'";
|
|
||||||
return sqlQuery;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void ConnectAndExecute(Vorgang v)
|
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
using (Oracle.ManagedDataAccess.Client.OracleConnection oracle = new Oracle.ManagedDataAccess.Client.OracleConnection())
|
Console.ForegroundColor = ConsoleColor.White;
|
||||||
|
|
||||||
|
//productive
|
||||||
|
csvPath = Path.Combine(Directory.GetFiles(Environment.CurrentDirectory, "*.csv").FirstOrDefault());
|
||||||
|
|
||||||
|
//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());
|
||||||
|
|
||||||
|
|
||||||
|
string pathOutputFileCM = Path.Combine(Directory.GetParent(csvPath).FullName, "outputCM.csv");
|
||||||
|
string pathOutputFileInpro = Path.Combine(Directory.GetParent(csvPath).FullName, "outputInpro.csv");
|
||||||
|
string pathOutputFileStandort = Path.Combine(Directory.GetParent(csvPath).FullName, "outputStandort.csv");
|
||||||
|
|
||||||
|
if (CheckFileExist())
|
||||||
{
|
{
|
||||||
oracle.ConnectionString = constring;
|
Console.ForegroundColor = ConsoleColor.Yellow;
|
||||||
|
Console.WriteLine("WARNING: import files already exist.");
|
||||||
|
Console.ResetColor();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
string sqlQuery = GenerateQuery(v.Aktenzeichen);
|
var config = File.ReadLines(@".\config.txt").ToArray();
|
||||||
|
DataOperations.conString = config[0];
|
||||||
|
DataOperations.kanalAktePath = config[2];
|
||||||
|
DataOperations.csvPath = csvPath;
|
||||||
|
|
||||||
using (Oracle.ManagedDataAccess.Client.OracleCommand com = new Oracle.ManagedDataAccess.Client.OracleCommand(sqlQuery, oracle))
|
if (!File.Exists(DataOperations.kanalAktePath))
|
||||||
|
throw new FileNotFoundException("Kanalaktendatei nicht gefunden.");
|
||||||
|
|
||||||
|
string archivNetPath = Path.Combine(config[1]);
|
||||||
|
|
||||||
|
Console.WriteLine("Working, please wait... or get yourself a tea.");
|
||||||
|
|
||||||
|
FileOperations.SplitRow(csvPath, archivNetPath);
|
||||||
|
|
||||||
|
//CM
|
||||||
|
using (StreamWriter sw = new StreamWriter(pathOutputFileCM))
|
||||||
|
{
|
||||||
|
foreach (var item in DataOperations.vorgängeCM)
|
||||||
{
|
{
|
||||||
oracle.Open();
|
sw.WriteLine(item.ToString());
|
||||||
using (Oracle.ManagedDataAccess.Client.OracleDataReader reader = com.ExecuteReader())
|
|
||||||
{
|
|
||||||
while (reader.Read())
|
|
||||||
{
|
|
||||||
v.Checkliste = reader.GetString(2);
|
|
||||||
v.VorgangsDefinition = reader.GetString(1);
|
|
||||||
v.BeschreibungVorgang = reader.GetString(3);
|
|
||||||
v.Eingangsdatum = Convert.ToDateTime(reader.GetValue(13).ToString());
|
|
||||||
v.Enddatum = Convert.ToDateTime(reader.GetValue(14).ToString());
|
|
||||||
//var date = reader.GetValue(12);
|
|
||||||
//if (date.ToString() == string.Empty)
|
|
||||||
// v.Enddatum = DateTime.Now;
|
|
||||||
//else
|
|
||||||
// v.Enddatum = Convert.ToDateTime(reader.GetValue(12).ToString());
|
|
||||||
var strasseId = reader.GetValue(4);
|
|
||||||
if (strasseId.ToString() == "")
|
|
||||||
v.IdStrasse = "null";
|
|
||||||
else
|
|
||||||
v.IdStrasse = strasseId.ToString();
|
|
||||||
v.Strasse1 = reader.GetValue(5).ToString().Trim();
|
|
||||||
v.Hausnummer1Von = reader.GetValue(6).ToString();
|
|
||||||
v.HsNrVonZusatz = reader.GetValue(8).ToString();
|
|
||||||
v.Hausnummer1Bis = reader.GetValue(9).ToString();
|
|
||||||
v.HsNrBisZusatz = reader.GetValue(10).ToString();
|
|
||||||
v.Strasse2 = reader.GetValue(11).ToString();
|
|
||||||
v.Hausnummer2 = reader.GetValue(12).ToString();
|
|
||||||
}
|
|
||||||
|
|
||||||
//CM
|
|
||||||
StringBuilder sbCM = new StringBuilder();
|
|
||||||
sbCM.Append(string.Concat(v.Id, ";"));
|
|
||||||
sbCM.Append(string.Concat(v.Aktenzeichen, ";"));
|
|
||||||
sbCM.Append(string.Concat(v.VorgangsDefinition.Trim(), ';'));
|
|
||||||
sbCM.Append(string.Concat(v.BeschreibungVorgang, ";"));
|
|
||||||
sbCM.Append(string.Concat(v.Strasse1, ";"));
|
|
||||||
sbCM.Append(string.Concat(string.Concat(v.Hausnummer1Von, " ", v.HsNrVonZusatz).Trim(), ';'));
|
|
||||||
sbCM.Append(string.Concat(v.Strasse2.Trim(), ";"));
|
|
||||||
sbCM.Append(string.Concat(string.Concat(v.Hausnummer1Bis, " ", v.HsNrBisZusatz).Trim(), ';'));
|
|
||||||
sbCM.Append(string.Concat(v.Enddatum.ToShortDateString(), ";"));
|
|
||||||
sbCM.Append(string.Concat(v.FameId, ";"));
|
|
||||||
sbCM.Append(string.Concat(v.CreationDate.ToShortDateString(), ";"));
|
|
||||||
|
|
||||||
//Langbezeichnung
|
|
||||||
string documentType = CheckedForDocumentType(v.DocType.Split(" ").FirstOrDefault());
|
|
||||||
sbCM.Append(string.Concat(documentType, " ", string.Concat(v.DocType.Split(" ").FirstOrDefault().Substring(0, 1), v.DocType.Split(" ").FirstOrDefault().Substring(1).ToLower()), " ", v.DocType.Split(" ", 2).Skip(1).FirstOrDefault(), ";"));
|
|
||||||
|
|
||||||
sbCM.Append(string.Concat(v.AbsoluteFilePath.Split('\\').SkipLast(2).LastOrDefault(), " ", v.Id, ";"));
|
|
||||||
|
|
||||||
sbCM.Append(string.Concat(v.FameId, ".pdf", ";"));
|
|
||||||
vorgängeCM.Add(sbCM.ToString());
|
|
||||||
|
|
||||||
StringBuilder sbInpro = new StringBuilder();
|
|
||||||
sbInpro.Append(string.Concat(string.Empty, ";"));//Barcode
|
|
||||||
sbInpro.Append(string.Concat(v.Aktenzeichen, ";"));//Vorgangsnummer
|
|
||||||
sbInpro.Append(string.Concat(string.Empty, ";"));//Abteilung
|
|
||||||
sbInpro.Append(string.Concat(v.IdStrasse, ";"));//Strasse1ID
|
|
||||||
sbInpro.Append(string.Concat(v.Strasse1, ";").Trim());//Strasse1
|
|
||||||
sbInpro.Append(string.Concat(v.Hausnummer1Von, ";").Trim());//Hausnummer1
|
|
||||||
sbInpro.Append(string.Concat(v.Hausnummer1Von, ";").Trim());//Hausnummer1Von
|
|
||||||
sbInpro.Append(string.Concat(v.HsNrVonZusatz, ";").Trim());//Hausnummer1VonZusatz
|
|
||||||
sbInpro.Append(string.Concat(v.Hausnummer1Bis, ";").Trim());//Hausnummer1Bis
|
|
||||||
sbInpro.Append(string.Concat(v.HsNrBisZusatz, ";").Trim());//Hausnummer1BisZusatz
|
|
||||||
sbInpro.Append(string.Concat(v.Strasse2, ";").Trim());//Strasse2
|
|
||||||
sbInpro.Append(string.Concat(v.Hausnummer2, ";").Trim());//Hausnummer2
|
|
||||||
sbInpro.Append(string.Concat(v.DocType, ";"));//Bezeichnung1
|
|
||||||
sbInpro.Append(string.Concat(v.Eingangsdatum.ToShortDateString(), ";"));//Eingangsdatum
|
|
||||||
sbInpro.Append(string.Concat(string.Empty, ";"));//Beschreibung1
|
|
||||||
sbInpro.Append(string.Concat(string.Empty, ";")); //Beschreibung2
|
|
||||||
sbInpro.Append(string.Concat(string.Empty, ";"));//Bezeichnung2
|
|
||||||
sbInpro.Append(string.Concat(v.DocsSZ, ";"));//Bezeichnung3
|
|
||||||
sbInpro.Append(string.Concat(v.FameId, ".pdf", ";"));//Dateiname
|
|
||||||
sbInpro.Append(string.Concat(v.FameId, ";"));//FameId
|
|
||||||
sbInpro.Append(string.Concat(v.VorgangsDefinition, ";").Trim());//Vorgangsart
|
|
||||||
sbInpro.Append(string.Concat(v.Checkliste, ";").Trim());//Checkliste
|
|
||||||
sbInpro.Append(string.Concat(v.Enddatum.ToShortDateString(), ";"));//Abschlussdatum
|
|
||||||
sbInpro.Append(string.Concat(string.Concat(documentType, " ", string.Concat(v.DocType.Split(" ").FirstOrDefault().Substring(0, 1), v.DocType.Split(" ").FirstOrDefault().Substring(1).ToLower()), " ", v.DocType.Split(" ", 2).Skip(1).FirstOrDefault(), ";")));//Langbezeichnung
|
|
||||||
vorgängeInpro.Add(sbInpro.ToString());
|
|
||||||
|
|
||||||
var tmp = ExtractFilePath(v.AbsoluteFilePath);
|
|
||||||
var destFolder = string.Concat("pdf", tmp.ElementAt(5), " ", tmp.ElementAt(0), " bis ", tmp.ElementAt(1), " ", tmp.ElementAt(2));
|
|
||||||
CopySourceFileToDestination(v.AbsoluteFilePath, destFolder, string.Concat(v.FameId, ".pdf"));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//Inpro
|
||||||
|
using (StreamWriter sw = new StreamWriter(pathOutputFileInpro))
|
||||||
|
{
|
||||||
|
foreach (var item in DataOperations.vorgängeInpro)
|
||||||
|
{
|
||||||
|
sw.WriteLine(item.ToString());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//Standort
|
||||||
|
using (StreamWriter sw = new StreamWriter(pathOutputFileStandort))
|
||||||
|
{
|
||||||
|
for (int i = 0; i < DataOperations.vorgängeStandort.Count; i++)
|
||||||
|
{
|
||||||
|
if (i == 0)
|
||||||
|
{
|
||||||
|
sw.WriteLine(String.Concat("CID", "VORGANGID", "Sachbearbeiter", "Bemerkung", "Standort", "ENTNAHMEDATUM", "Entnahmezeit", "RUECKGABEDATUM", "Rückgabezeit"));
|
||||||
|
}
|
||||||
|
sw.WriteLine(DataOperations.vorgängeStandort[i]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Console.ForegroundColor = ConsoleColor.Green;
|
||||||
|
Console.WriteLine("{0} created.", pathOutputFileCM);
|
||||||
|
Console.WriteLine("{0} created.", pathOutputFileInpro);
|
||||||
|
Console.WriteLine("{0} created.", pathOutputFileStandort);
|
||||||
|
Console.ResetColor();
|
||||||
|
|
||||||
|
//Backup JPM-Files
|
||||||
|
Console.WriteLine("Start copying jpm-files, please wait...");
|
||||||
|
FileInfo fi = new FileInfo(csvPath);
|
||||||
|
FileOperations.CopyJPMFilesToDestination(fi.Directory.FullName, archivNetPath);
|
||||||
|
Console.WriteLine("");
|
||||||
|
Console.ForegroundColor = ConsoleColor.Green;
|
||||||
|
Console.WriteLine("Done. You may close this window now.");
|
||||||
|
|
||||||
|
Console.ReadLine();
|
||||||
|
|
||||||
|
}
|
||||||
|
catch (DirectoryNotFoundException)
|
||||||
|
{
|
||||||
|
Console.ForegroundColor = ConsoleColor.Red;
|
||||||
|
Console.WriteLine("ERROR: source directory not found.");
|
||||||
|
Console.ReadLine();
|
||||||
|
}
|
||||||
|
catch (FileNotFoundException ex)
|
||||||
|
{
|
||||||
|
Console.ForegroundColor = ConsoleColor.Red;
|
||||||
|
Console.WriteLine("ERROR: "+ex.Message);
|
||||||
|
Console.ReadLine();
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
Console.WriteLine("ERROR fetching data for {0}:{1}", v.Aktenzeichen, ex.Message);
|
Console.ForegroundColor = ConsoleColor.Red;
|
||||||
|
Console.WriteLine("ERROR: unknown error occured. Maybe no csv-File? Please check!\r\n{0}", ex.InnerException);
|
||||||
|
Console.ReadLine();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
static string CheckedForDocumentType(string value)
|
|
||||||
{
|
|
||||||
switch (value)
|
|
||||||
{
|
|
||||||
case "SCHRIFTVERKEHR":
|
|
||||||
value = "01";
|
|
||||||
break;
|
|
||||||
case "ZEICHNUNGEN":
|
|
||||||
value = "02";
|
|
||||||
break;
|
|
||||||
case "STATIK":
|
|
||||||
value = "03";
|
|
||||||
break;
|
|
||||||
case "SONSTIGES":
|
|
||||||
value = "04";
|
|
||||||
break;
|
|
||||||
case "GENEHMIGUNG":
|
|
||||||
value = "05";
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
return value;
|
|
||||||
}
|
|
||||||
|
|
||||||
static void CopySourceFileToDestination(string sourceFilePath, string destFolderName, string destFileName)
|
public static bool CheckFileExist()
|
||||||
{
|
{
|
||||||
string destPath = Path.Combine(destinationFilePath, destFolderName);
|
if (File.Exists(Path.Combine(Directory.GetParent(csvPath).FullName, "outputInpro.csv")) || File.Exists(Path.Combine(Directory.GetParent(csvPath).FullName, "outputCM.csv")))
|
||||||
if (!Directory.Exists(destPath))
|
{
|
||||||
Directory.CreateDirectory(destPath);
|
return true;
|
||||||
File.Copy(sourceFilePath, Path.Combine(destPath, destFileName),true);
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user