161 lines
6.7 KiB
C#
161 lines
6.7 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
|
|
namespace MergeCMInpro.Business
|
|
{
|
|
internal class VorgangInpro : Vorgang
|
|
{
|
|
#region Properties
|
|
public string Abteilung { get; set; }
|
|
|
|
public string IdStrasse { get; set; }
|
|
|
|
public string Hausnummer1Von { get; set; }
|
|
|
|
public string Hausnummer1Bis { get; set; }
|
|
|
|
public string HsNrVonZusatz { get; set; }
|
|
|
|
public string HsNrBisZusatz { get; set; }
|
|
|
|
public DateTime Eingangsdatum { get; set; }
|
|
|
|
public string Beschreibung1 { get; set; }
|
|
|
|
public string Beschreibung2 { get; set; }
|
|
|
|
public string Bezeichnung2 { get; set; }
|
|
|
|
public string Checkliste { get; set; }
|
|
|
|
public string DocsSZ { get; set; }
|
|
|
|
|
|
#endregion
|
|
|
|
public VorgangInpro()
|
|
{
|
|
|
|
}
|
|
|
|
public override string GenerateVorgang(Vorgang v)
|
|
{
|
|
string documentType = FileOperations.LowerDocumentType(v.DocType.Split(" ").FirstOrDefault());
|
|
string band = 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()));
|
|
|
|
StringBuilder sbInpro = new StringBuilder();
|
|
sbInpro.Append(string.Concat(v.Id, ";"));//Barcode
|
|
sbInpro.Append(string.Concat(v.Aktenzeichen, ";"));//Vorgangsnummer
|
|
sbInpro.Append(string.Concat(string.Empty, ";"));//Abteilung
|
|
sbInpro.Append(string.Concat(this.IdStrasse, ";"));//Strasse1ID
|
|
sbInpro.Append(string.Concat(v.Strasse1, ";").Trim());//Strasse1
|
|
|
|
|
|
sbInpro.Append(string.Concat(v.Hausnummer1, ";").Trim());//Hausnummer1
|
|
sbInpro.Append(string.Concat(this.Hausnummer1Von, ";").Trim());//Hausnummer1Von
|
|
sbInpro.Append(string.Concat(this.HsNrVonZusatz, ";").Trim());//Hausnummer1VonZusatz
|
|
sbInpro.Append(string.Concat(this.Hausnummer1Bis, ";").Trim());//Hausnummer1Bis
|
|
sbInpro.Append(string.Concat(this.HsNrBisZusatz, ";").Trim());//Hausnummer1BisZusatz
|
|
|
|
|
|
sbInpro.Append(string.Concat(this.Strasse2, ";").Trim());//Strasse2
|
|
sbInpro.Append(string.Concat(this.Hausnummer2, ";").Trim());//Hausnummer2
|
|
|
|
sbInpro.Append(string.Concat(band, ";"));//Bezeichnung1 bzw. Band
|
|
sbInpro.Append(string.Concat(this.Eingangsdatum.ToShortDateString(), ";"));//Eingangsdatum
|
|
sbInpro.Append(string.Concat("Digitalisierte Akte", ";"));//Beschreibung1
|
|
sbInpro.Append(string.Concat(string.Empty, ";")); //Beschreibung2
|
|
sbInpro.Append(string.Concat(string.Empty, ";"));//Bezeichnung2
|
|
sbInpro.Append(string.Concat(this.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(this.Checkliste, ";").Trim());//Checkliste
|
|
sbInpro.Append(string.Concat(this.Enddatum.ToShortDateString(), ";"));//Abschlussdatum
|
|
sbInpro.Append(string.Concat(base.GenerateLangbezeichnungFromPath(v.AbsoluteFilePath), v.Id));
|
|
return sbInpro.ToString();
|
|
}
|
|
|
|
//string GenerateLangbezeichnungFromPath(string path)
|
|
//{
|
|
// var temp = path.Split('\\').SkipLast(2).LastOrDefault().Split(' ').Skip(3);
|
|
// string result = string.Concat(temp.ElementAt(0), " ", temp.ElementAt(1), " ", temp.ElementAt(2), " Datensatz ");
|
|
|
|
// //#region TESTING
|
|
// //string testing = "TEST";
|
|
// //string result = testing;
|
|
// //#endregion
|
|
|
|
// return result;
|
|
//}
|
|
|
|
|
|
public void SplittedHausnummerZusatz(Vorgang v)
|
|
{
|
|
string hausnummerZusatzVon = string.Empty;
|
|
string hausnummerZusatzBis = string.Empty;
|
|
|
|
Tuple<string, string> result;
|
|
|
|
if (v.Hausnummer1.Contains('-')) //13-15, 13a-15
|
|
{
|
|
hausnummerZusatzVon = v.Hausnummer1.Split('-').FirstOrDefault();
|
|
hausnummerZusatzBis = v.Hausnummer1.Split('-').LastOrDefault();
|
|
result = ExtractingZusatzFromHausnummer(hausnummerZusatzVon);
|
|
this.Hausnummer1Von = result.Item1;
|
|
this.HsNrVonZusatz = result.Item2;
|
|
result = ExtractingZusatzFromHausnummer(hausnummerZusatzBis);
|
|
this.Hausnummer1Bis = result.Item1;
|
|
this.HsNrBisZusatz = result.Item2;
|
|
|
|
if (this.HsNrBisZusatz.Length >= 2 || this.HsNrVonZusatz.Length >= 2)
|
|
{
|
|
this.HsNrVonZusatz = this.HsNrVonZusatz != string.Empty ? this.HsNrVonZusatz.FirstOrDefault().ToString() : string.Empty;
|
|
this.HsNrBisZusatz = this.HsNrBisZusatz != string.Empty ? this.HsNrBisZusatz.LastOrDefault().ToString() : string.Empty;
|
|
}
|
|
}
|
|
else if (v.Hausnummer1.Contains("bis"))
|
|
{
|
|
//Vorkommen von "bis"
|
|
int firstBisIndex = v.Hausnummer1.IndexOf("bis");
|
|
int lastBisIndex = v.Hausnummer1.LastIndexOf("bis") + "bis".Length;
|
|
this.Hausnummer1Von = v.Hausnummer1.Substring(0, firstBisIndex);
|
|
result = ExtractingZusatzFromHausnummer(this.Hausnummer1Von);
|
|
this.Hausnummer1Von = result.Item1;
|
|
this.HsNrVonZusatz = result.Item2;
|
|
this.Hausnummer1Bis = v.Hausnummer1.Substring(lastBisIndex, v.Hausnummer1.Length - lastBisIndex);
|
|
result = ExtractingZusatzFromHausnummer(this.Hausnummer1Bis);
|
|
this.Hausnummer1Bis = result.Item1;
|
|
this.HsNrBisZusatz = result.Item2;
|
|
}
|
|
else //13
|
|
{
|
|
result = ExtractingZusatzFromHausnummer(v.Hausnummer1);
|
|
this.Hausnummer1Von = result.Item1;
|
|
this.HsNrVonZusatz = result.Item2;
|
|
}
|
|
}
|
|
|
|
public static Tuple<string, string> 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<string, string>(sbHausnummer.ToString(), sbZusatz.ToString());
|
|
}
|
|
}
|
|
}
|