using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace KlassenBIB
{
    public sealed class InlinerSanierung : Sanieren
    {
        double kalibrierUnterdruck = -0.5;
        double kalibierWalzenAbstand = 0.9;
        double harzKalibrierTemperatur;
        DateTime datumKalibrierung;
        string harzChargenummer;
        string linerChargenummer;
        string harzTyp;
        string linerTyp;
        double harzbedarf = 1.8;
        uint rueckholgeschwindigkeit = 24;
        bool geschlosseneEnde = false;
        
        /// <summary>
        /// Gibt den kompletten Harzbedarf auf die Haltungslänge bezogen zurück
        /// </summary>
        public double GetGesamtHarzbedarf(double haltungslaenge)
        {
            return haltungslaenge * harzbedarf;
        }

        public override string CheckVerzeichnisse(string projektpfad)
        {
            string path = Path.Combine(projektpfad, PfadZurSan);
            if (!Directory.Exists(path)) Directory.CreateDirectory(path);

            string mypath = Path.Combine(path, Verzeichnispfad);
            if (!Directory.Exists(mypath)) Directory.CreateDirectory(mypath);

            return mypath;
        }

        public InlinerSanierung()
        {
            //datumKalibrierung = new DateTime();
            Verzeichnispfad = "UVAnlage";
            if (datumKalibrierung <= DateTime.MinValue || datumKalibrierung >= DateTime.MaxValue) datumKalibrierung = DateTime.Now;
        }

        public double KalibrierUnterdruck { get => kalibrierUnterdruck; set => kalibrierUnterdruck = value; }
        public double KalibierWalzenAbstand { get => kalibierWalzenAbstand; set => kalibierWalzenAbstand = value; }
        public double HarzKalibrierTemperatur { get => harzKalibrierTemperatur; set => harzKalibrierTemperatur = value; }
        public DateTime DatumKalibrierung
        {
            get
            {
                Trace.WriteLine("DatumKali abgefragt");
                return datumKalibrierung;
            }
            set
            {
                Trace.WriteLine("Datum kali gesetzt");
                datumKalibrierung = value;
            }
        }
        public string HarzChargenummer { get => harzChargenummer; set => harzChargenummer = value; }
        public string LinerChargenummer { get => linerChargenummer; set => linerChargenummer = value; }
        public double Harzbedarf { get => harzbedarf; set => harzbedarf = value; }
        public uint Rueckholgeschwindigkeit { get => rueckholgeschwindigkeit; set => rueckholgeschwindigkeit = value; }
        public bool GeschlosseneEnde { get => geschlosseneEnde; set => geschlosseneEnde = value; }
        public double HarzBedarf { get => harzbedarf; set => harzbedarf = value; }
        public string HarzTyp { get => harzTyp; set => harzTyp = value; }
        public string LinerTyp { get => linerTyp; set => linerTyp = value; }
    }
}
