using System;
using System.Collections.Generic;
using System.Diagnostics.CodeAnalysis;
using System.Linq;
using System.Text;

namespace Hochbaustatistik.Business
{
    public class VorgangInpro : Vorgang
    {
        
        #region Properties

        //ggf Datetime
        public string Eingangsdatum { get; set; }

        public string IdStrasse { get; set; }
            
        public string Sachbearbeiter { get; set; }

        //ggf. Boolean
        public string ZdA { get; set; }

        //ggf Datetime
        public string Genehmigung { get; set; }

        //ggf Datetime
        public string Freigabe { get; set; }

        public string Bezirk { get; set; }

        public string Nummer { get; set; }

        public string Statistik_Relevant { get; set; }

        public string Statistik1 { get; set; }

        public string Statistik2 { get; set; }

        //ggf Datetime
        public string Genehmigung_Gemeldet { get; set; }

        //ggf Datetime
        public string Fertigstellung_Gemeldet { get; set; }

        //ggf Datetime
        public string Baubeginn { get; set; }

        //ggf Datetime
        public string Teilrohbauabnahme { get; set; }

        //ggf Datetime
        public string Rohbauabnahme { get; set; }

        //ggf Datetime
        public string Schlussabnahme { get; set; }

        public string BaugenehmigungAusgeführt { get; set; }

        //ggf Datetime
        public string Vorjahr { get; set; }

        //ggf Datetime
        public string Bauüberhang_Vorjahr { get; set; }

        public string Aktenstandort { get; set; }
        #endregion

        [ExcludeFromCodeCoverage]
        public override string GenerateVorgang(Vorgang v)
        {          
            StringBuilder sbInpro = new StringBuilder();

            sbInpro.Append(string.Concat(this.Bezirk, ";"));//Bezirk
            sbInpro.Append(string.Concat(v.Aktenzeichen, ";"));//Vorgangsnummer
            sbInpro.Append(string.Concat(this.Nummer, ";"));//letzten 6 Ziffern des AZ
            sbInpro.Append(string.Concat(v.VorgangsDefinition, ";"));//Vorgangdefinition
            sbInpro.Append(string.Concat(this.IdStrasse, ";"));//Strasse1ID
            sbInpro.Append(string.Concat(v.Strasse1," ", v.Hausnummer1, ";").Trim());//Strasse1+Hausnummer
            sbInpro.Append(string.Concat(this.Sachbearbeiter, ";"));//Sachbearbeiter          
            sbInpro.Append(string.Concat(this.ZdA, ";"));//zdA
            sbInpro.Append(string.Concat(this.Genehmigung, ";"));//Genehmigung
            sbInpro.Append(string.Concat(this.Statistik_Relevant, ";"));//Statistik_Relevant
            sbInpro.Append(string.Concat(this.Statistik1, ";"));//Statistik1
            sbInpro.Append(string.Concat(this.Statistik2, ";"));//Statistik2
            sbInpro.Append(string.Concat(this.Genehmigung_Gemeldet, ";"));//Genehmigung_Gemeldet
            sbInpro.Append(string.Concat(this.Fertigstellung_Gemeldet, ";"));//Fertigstellung
            sbInpro.Append(string.Concat(this.Baubeginn, ";"));//Baubeginn
            sbInpro.Append(string.Concat(this.Rohbauabnahme, ";"));//Rohbauabnahme
            sbInpro.Append(string.Concat(this.Schlussabnahme, ";"));//Schlussabnahme
            sbInpro.Append(string.Concat(this.Vorjahr, ";"));//Vorjahr
            sbInpro.Append(string.Concat(this.Bauüberhang_Vorjahr, ";"));//Bauüberhang_Vorjahr
            sbInpro.Append(string.Concat(this.Aktenstandort, ";"));//Aktenstandort
            return sbInpro.ToString();
        }
    }
}
