Files
MergeCMInpro/Business/Vorgang.cs
2026-04-23 14:26:26 +02:00

143 lines
3.8 KiB
C#

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 MergeCMInpro.Business
{
public class Vorgang
{
#region Fields
private string aktenzeichen;
#endregion
#region Properties
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 DocType { get; set; }
public string NamePDF { get; set; }
public static Dictionary<int, string> Strassen { get; set; }
public string Strasse1 { get; set; }
public string Teil { get; set; }
public string Hausnummer1 { get; set; }
public string Strasse2 { get; set; } = string.Empty;
public string Hausnummer2 { get; set; } = string.Empty;
public string AbsoluteFilePath { get; set; }
public DateTime CreationDate { get; set; }
public DateTime Enddatum { get; set; }
#endregion Properties
#region Constructor
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;
this.Hausnummer1 = hausnummer1;
}
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()
{
}
#endregion
#region Methods
string ReplaceHiphenWithSlash(string aktenzeichen)
{
var regex = new Regex(Regex.Escape("-"));
string res = regex.Replace(aktenzeichen, "/", 1);
return res;
}
protected 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);
return tmp;
}
public virtual string GenerateVorgang(Vorgang v)
{
return String.Empty;
}
protected 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;
}
#endregion
}
}