WIP Software anpassen
This commit is contained in:
@@ -52,12 +52,15 @@ namespace Database
|
||||
}
|
||||
|
||||
private string projektpfad = string.Empty;
|
||||
public bool LoadProjekt(string projekt, string projektpfad)
|
||||
public bool LoadProjekt(string projekt)
|
||||
{
|
||||
this.projekt = projekt;
|
||||
loadedProjekt = Datenbank.Instance.TeufelDB.Projekte.Find(x => x.Nummer != null && x.Nummer.Equals(projekt));
|
||||
//Debugger.Break();
|
||||
//UnPackProject("18-850","willyteufelchen");
|
||||
//PackSystem("./projekte/18-850.zip", "./projekte/18-850","willyteufelchen");
|
||||
|
||||
/*
|
||||
string filepath = Path.Combine(projektpfad, string.Format("{0}.xaml", projekt));
|
||||
this.projektpfad = filepath;
|
||||
if (File.Exists(filepath))
|
||||
@@ -77,10 +80,15 @@ namespace Database
|
||||
else
|
||||
loadedProjekt = new KlassenBIB.Projekt();
|
||||
|
||||
UpdateDatabase.UpdateNewGuids();
|
||||
UpdateDatabase.TransferAuftraggeber();
|
||||
UpdateDatabase.MakeNewDatabaseSystem();
|
||||
UpdateDatabase.TransferSanierteObjekte();
|
||||
*/
|
||||
if (!File.Exists("./projekte/TeufelDB.xaml"))
|
||||
{
|
||||
UpdateDatabase.UpdateNewGuids();
|
||||
UpdateDatabase.TransferSanierteObjekte();
|
||||
UpdateDatabase.TransferAuftraggeber();
|
||||
UpdateDatabase.MakeNewDatabaseSystem();
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -92,108 +100,6 @@ namespace Database
|
||||
return true;
|
||||
}
|
||||
|
||||
private void UnPackProject(string projekt, string password = "")
|
||||
{
|
||||
if (!Directory.Exists("./temp")) Directory.CreateDirectory("./temp");
|
||||
|
||||
ZipFile zf = null;
|
||||
try
|
||||
{
|
||||
FileStream fs = File.OpenRead(Path.Combine("projekte", string.Format("{0}.zip", projekt)));
|
||||
zf = new ZipFile(fs);
|
||||
if (!password.Equals("")) zf.Password = password;
|
||||
foreach(ZipEntry zipEntry in zf)
|
||||
{
|
||||
if (!zipEntry.IsFile) continue;
|
||||
string entryFileName = zipEntry.Name;
|
||||
byte[] buffer = new byte[4096];
|
||||
Stream zipStream = zf.GetInputStream(zipEntry);
|
||||
|
||||
string fullZipToPath = Path.Combine("./temp/", entryFileName);
|
||||
string directoryName = Path.GetDirectoryName(fullZipToPath);
|
||||
if (directoryName.Length > 0) Directory.CreateDirectory(directoryName);
|
||||
using (FileStream streamWriter = File.Create(fullZipToPath))
|
||||
{
|
||||
StreamUtils.Copy(zipStream, streamWriter, buffer);
|
||||
}
|
||||
}
|
||||
}
|
||||
finally
|
||||
{
|
||||
if(zf != null)
|
||||
{
|
||||
zf.IsStreamOwner = true;
|
||||
zf.Close();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public bool CreateProjekt(string projektnummer)
|
||||
{
|
||||
string filepath = Path.Combine(pfad, projektnummer);
|
||||
if (File.Exists(filepath)) return false;
|
||||
|
||||
using (MemoryStream memoryStream = new MemoryStream())
|
||||
{
|
||||
using (ZipArchive archive = new ZipArchive(memoryStream, ZipArchiveMode.Create, true))
|
||||
{
|
||||
var demoFile = archive.CreateEntry("daten/foo.txt");
|
||||
using (var entryStream = demoFile.Open())
|
||||
{
|
||||
XamlServices.Save(entryStream, loadedProjekt);
|
||||
}
|
||||
}
|
||||
|
||||
using (var fileStream = new FileStream("./test.zip", FileMode.Create))
|
||||
{
|
||||
memoryStream.Seek(0, SeekOrigin.Begin);
|
||||
memoryStream.CopyTo(fileStream);
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
private void PackSystem(string outPathName, string folderName, string password = "")
|
||||
{
|
||||
FileStream fsOut = File.Create(outPathName);
|
||||
ZipOutputStream zipStream = new ZipOutputStream(fsOut);
|
||||
|
||||
zipStream.SetLevel(3);
|
||||
|
||||
if (!password.Equals("")) zipStream.Password = password;
|
||||
|
||||
int folderOffset = folderName.Length +(folderName.EndsWith("\\") ? 0 : 1);
|
||||
CompressFolder(folderName, zipStream, folderOffset);
|
||||
zipStream.IsStreamOwner = true;
|
||||
zipStream.Close();
|
||||
}
|
||||
|
||||
private void CompressFolder(string path, ZipOutputStream zipStream, int folderOffset)
|
||||
{
|
||||
string[] files = Directory.GetFiles(path);
|
||||
foreach(string filename in files)
|
||||
{
|
||||
FileInfo fi = new FileInfo(filename);
|
||||
string entryName = filename.Substring(folderOffset);
|
||||
entryName = ZipEntry.CleanName(entryName);
|
||||
ZipEntry newEntry = new ZipEntry(entryName);
|
||||
newEntry.DateTime = fi.LastWriteTime;
|
||||
newEntry.Size = fi.Length;
|
||||
zipStream.PutNextEntry(newEntry);
|
||||
byte[] buffer = new byte[4096];
|
||||
using (FileStream streamReader = File.OpenRead(filename))
|
||||
{
|
||||
StreamUtils.Copy(streamReader, zipStream, buffer);
|
||||
}
|
||||
zipStream.CloseEntry();
|
||||
}
|
||||
string[] folders = Directory.GetDirectories(path);
|
||||
foreach(string folder in folders)
|
||||
{
|
||||
CompressFolder(folder, zipStream, folderOffset);
|
||||
}
|
||||
}
|
||||
|
||||
public void Test()
|
||||
{
|
||||
@@ -218,8 +124,8 @@ namespace Database
|
||||
|
||||
public void SaveProjekt()
|
||||
{
|
||||
XamlServices.Save("./projekte/MainDatenbank.xaml", MainDatenbank);
|
||||
XamlServices.Save(projektpfad, loadedProjekt);
|
||||
//XamlServices.Save("./projekte/MainDatenbank.xaml", MainDatenbank);
|
||||
//XamlServices.Save(projektpfad, loadedProjekt);
|
||||
XamlServices.Save("./projekte/TeufelDB.xaml", TeufelDB);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -151,7 +151,7 @@ namespace Database
|
||||
}
|
||||
}
|
||||
}
|
||||
Debugger.Break();
|
||||
//Debugger.Break();
|
||||
}
|
||||
|
||||
public static void TransferAuftraggeber()
|
||||
|
||||
Reference in New Issue
Block a user