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 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 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()); } } }