81 lines
3.2 KiB
C#
81 lines
3.2 KiB
C#
using KlassenBIB;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Diagnostics;
|
|
using System.IO;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
using System.Windows.Forms;
|
|
|
|
namespace SanSystem
|
|
{
|
|
static class BüroExporter
|
|
{
|
|
private static int getNextFotoNumber(string destinationPath,string fotoname)
|
|
{
|
|
IEnumerable<string> Content = Directory.EnumerateFiles(destinationPath,fotoname);
|
|
return Content.Count() + 1;
|
|
}
|
|
|
|
public static bool Export(Projekt projekt, string destinationPath = "./")
|
|
{
|
|
destinationPath = Path.Combine(destinationPath, "EXPORT");
|
|
foreach (Inspektionsobjekt d in projekt.Objekte)
|
|
{
|
|
KlassenBIB.Collections.Sanierung sanierungsliste = d.Sanierung;
|
|
|
|
if (sanierungsliste.Count < 1) continue;
|
|
|
|
string tempPath = Path.Combine(destinationPath, "ID" + d.Sanierungsnummer);
|
|
if (Directory.Exists(tempPath))
|
|
{
|
|
try
|
|
{
|
|
Directory.Delete(tempPath, true);
|
|
}
|
|
catch (UnauthorizedAccessException)
|
|
{
|
|
|
|
}
|
|
}
|
|
Directory.CreateDirectory(tempPath);
|
|
|
|
foreach (Sanierung san in sanierungsliste)
|
|
{
|
|
if (san is KlassenBIB.InlinerSanierung)
|
|
{
|
|
// PDF
|
|
string sourceDirectory = Path.Combine(Global.Instance.Projektpfad, "Einbauprotokolle", d.Objektbezeichnung + ".pdf");
|
|
if (!File.Exists(sourceDirectory))
|
|
{
|
|
MessageBox.Show("Bitte Bericht erzeugen", "Haltung " + d.Objektbezeichnung + " noch nicht erstellt");
|
|
}
|
|
else
|
|
{
|
|
File.Copy(sourceDirectory, tempPath + "/" + d.Objektbezeichnung + ".pdf");
|
|
}
|
|
}
|
|
else if (san is KlassenBIB.SchachtAnbindung)
|
|
{
|
|
string sourceDirectory = san.CheckVerzeichnisse(Global.Instance.Projektpfad);
|
|
SchachtAnbindung fotoDokumentation = (san as SchachtAnbindung);
|
|
KlassenBIB.Collections.Bilder fotos = fotoDokumentation.SavedBilders;
|
|
foreach (SavedBilder foto in fotos)
|
|
{
|
|
// Prüfen welche der nächste Freie nummer ist
|
|
// Bildname_X, wobei X eine zahl der erhöht wird, angefangen bei 1
|
|
int freeFotoNumber = getNextFotoNumber(tempPath, d.Objektbezeichnung + "*.jpg");
|
|
string destinationName = string.Format("{0}_{1:d3}.jpg", d.Objektbezeichnung, freeFotoNumber); // 0 ist der Index, d3 => 3 Decimalstellen
|
|
|
|
File.Copy(foto.Speicherpfad, Path.Combine(tempPath, destinationName));
|
|
}
|
|
|
|
}
|
|
}
|
|
}
|
|
return true;
|
|
}
|
|
}
|
|
}
|