using Database;
using FluentFTP;
using KlassenBIB;
using SanShared;
using SanShared.Exceptions;
using SchnittstelleImporter;
using System;
using System.Collections;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Diagnostics;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using WupiEngine;
namespace SanSystem
{
///
///
///
public partial class frmMain : Form
{
///
///
///
public frmMain()
{
InitializeComponent();
//Global.Instance.
if (!Directory.Exists(Global.Instance.Projektpfad)) Directory.CreateDirectory(Global.Instance.Projektpfad);
try
{
Datenbank.Instance.LoadProjekt(Global.Instance.ProjektNummer, Global.Instance.Projektpfad);// Path.Combine(Global.Instance.Projektpfad,"18-850.xaml"));
}
catch(DataBaseVersionMismatchException ex)
{
frmExceptionWindow frmException = new frmExceptionWindow(ex.Message);
frmException.FormClosed += FrmException_FormClosed;
frmException.ShowDialog();
}
//Datenbank.Instance.CreateProjekt("");
this.Width = Screen.PrimaryScreen.WorkingArea.Width;
this.Height = Screen.PrimaryScreen.WorkingArea.Height;
this.WindowState = FormWindowState.Maximized;
this.StartPosition = FormStartPosition.Manual;
this.Location = new Point(0, 0);
projektToolStripMenuItem.Text = Global.Instance.language.Labels["mainmenu_projekt"];
neuToolStripMenuItem.Text = Global.Instance.language.Labels["mainmenu_projekt_new"];
öffnenToolStripMenuItem.Text = Global.Instance.language.Labels["mainmenu_projekt_open"];
toolStripStatus_projekt_Label.Text = Datenbank.Instance.projekt;
this.Text += " " + Global.Instance.PROGRAMMVERSION;
#if (DEBUG || LAPTOP)
this.Text += " INTERNE DEBUG VERSION";
#endif
if (Wupi.QueryInfo(0, QueryInfoOption.FirmCode) == 0)
this.Text += " nicht geschützter Version nur für TESTZWECKE!";
}
private void FrmException_FormClosed(object sender, FormClosedEventArgs e)
{
Environment.Exit(0);
}
private void frm_main_Load(object sender, EventArgs e)
{
frmStrassenList strassenList = new frmStrassenList();
strassenList.MdiParent = this;
strassenList.Show();
//frmObjektEdit frmObjektEdit = new frmObjektEdit();
//frmObjektEdit.Show();
}
private void frm_main_FormClosing(object sender, FormClosingEventArgs e)
{
Datenbank.Instance.SaveProjekt();
}
private void neuToolStripMenuItem_Click(object sender, EventArgs e)
{
frmNewProjekt frmNewProjekt = new frmNewProjekt();
frmNewProjekt.FormClosed += FrmProjektList_FormClosed;
frmNewProjekt.ShowDialog();
}
private void öffnenToolStripMenuItem_Click(object sender, EventArgs e)
{
//
frmProjektList frmProjektList = new frmProjektList();
frmProjektList.FormClosed += FrmProjektList_FormClosed;
frmProjektList.ShowDialog();
}
private void FrmProjektList_FormClosed(object sender, FormClosedEventArgs e)
{
toolStripStatus_projekt_Label.Text = Global.Instance.ProjektNummer;
Form[] openedWindows = this.MdiChildren;
foreach(Form form in openedWindows)
{
form.Close();
form.Dispose();
}
frmStrassenList strassenList = new frmStrassenList();
strassenList.MdiParent = this;
strassenList.Top = 0;
strassenList.Left = 0;
strassenList.Location = new Point(0, 0);
strassenList.StartPosition = FormStartPosition.Manual;
strassenList.Show();
}
private void speichernToolStripMenuItem_Click(object sender, EventArgs e)
{
Datenbank.Instance.SaveProjekt();
}
private void massenstatistikToolStripMenuItem_Click(object sender, EventArgs e)
{
frmSelectMassenDate frmSelectMassenDate = new frmSelectMassenDate();
frmSelectMassenDate.ShowDialog();
}
private void stammdatenImportierenToolStripMenuItem_Click(object sender, EventArgs e)
{
OpenFileDialog openFileDialog = new OpenFileDialog();
openFileDialog.Filter = "XML Daten | *.xml";
if (openFileDialog.ShowDialog() == DialogResult.OK)
{
string path = openFileDialog.FileName;
IImportedObjekte importedObjekte = SchnittstelleImporter.ImportBuilder.Import(ImportSchnittstellen.XML2006);
importedObjekte.XMLFile = path;//@"C:\Users\Damian\Desktop\XML\3_Zustandsdaten\ISYBAU_XML-2006-Zustandsdaten_DIN_EN_13508-2.xml";
importedObjekte.Projektnummer = Global.Instance.ProjektNummer;
Datenbank.Instance.loadedProjekt.Objekte.AddRange(importedObjekte.GetInspektionsobjekte());
Form[] openedWindows = this.MdiChildren;
foreach (Form form in openedWindows)
{
form.Close();
form.Dispose();
}
frmStrassenList strassenList = new frmStrassenList();
strassenList.MdiParent = this;
strassenList.Top = 0;
strassenList.Left = 0;
strassenList.Location = new Point(0, 0);
strassenList.StartPosition = FormStartPosition.Manual;
strassenList.Show();
}
}
private void auftraggeberToolStripMenuItem_Click(object sender, EventArgs e)
{
frmAuftraggeberEdit frmAuftraggeberEdit = new frmAuftraggeberEdit(Datenbank.Instance.loadedProjekt.Auftraggeber);
frmAuftraggeberEdit.ShowDialog();
}
private void ProjektordnerÖffnenToolStripMenuItem_Click(object sender, EventArgs e)
{
Process prozess = new Process();
prozess.StartInfo.FileName = "explorer";
try
{
prozess.StartInfo.Arguments = Path.Combine(Environment.CurrentDirectory, Global.Instance.Projektpfad);
prozess.Start();
}
catch(Exception ex)
{
MessageBox.Show("Es ist ein fehler aufgetreten beim öffnen vom Baustellenordner " + ex.Message);
}
}
private void ImprägnierberichteToolStripMenuItem_Click(object sender, EventArgs e)
{
frmImprägnierBerichtList frmImprägnierBerichtList = new frmImprägnierBerichtList();
frmImprägnierBerichtList.ShowDialog();
}
private void MassenberichteToolStripMenuItem_Click(object sender, EventArgs e)
{
List ausdruck = new List();
List bilder = new List();
foreach(Inspektionsobjekt objekte in Database.Datenbank.Instance.loadedProjekt.Objekte)
{
foreach(AbstractSanieren san in objekte.Sanierung)
{
if(san is InlinerSanierung)
{
ausdruck.Add((InlinerSanierung)san);
}
else if(san is SchachtAnbindung)
{
foreach(SavedBilder bild in (san as SchachtAnbindung).SavedBilders)
{
string komment = String.Empty;
if ((san as SchachtAnbindung).SchachtNummer != null)
{
komment = string.Format("{0} von Schacht: {1}", bild.Bildname, (san as SchachtAnbindung).SchachtNummer);
}
bilder.Add(new BilderObject()
{
Path = bild.Speicherpfad,
Kommentar = komment
});
}
}
}
}
foreach(InlinerSanierung san in ausdruck)
{
string destinationPath = san.CheckVerzeichnisse(Global.Instance.Projektpfad);
Hashtable hashtable = san.MakeProtokoll(destinationPath, Database.Datenbank.Instance.loadedProjekt, DateTime.MinValue);
DirectoryInfo directory = Directory.GetParent(destinationPath);
string speicherpfad = Path.Combine(directory.FullName,"Einbauprotokolle");
BerichtGen.FrmOptions options = new BerichtGen.FrmOptions("JUME", "liner_einbauBlueLight.docx", speicherpfad, san.Inspektionsobjekt.Objektbezeichnung, hashtable, bilder,null,true);
}
//options.ShowDialog();
MessageBox.Show("Fertig");
}
}
}