BMTuneSource/Class21_snap.cs

231 lines
8.7 KiB
C#

using Dal;
using Data;
using System;
using System.Collections.ObjectModel;
using System.IO;
using System.Globalization;
using System.Runtime.CompilerServices;
//using System.Runtime.Serialization;
//using System.Runtime.Serialization.Formatters.Binary;
using System.Windows.Forms;
internal class Class21_snap
{
private Class18 class18_0;
private QuickSaveListObjects quickSaveListObjects_0 = new QuickSaveListObjects();
private string string_0;
public event Delegate63 delegate63_0;
internal void method_0(ref Class18 class18_1)
{
this.class18_0 = class18_1;
this.class18_0.delegate58_0 += new Class18.Delegate58(this.method_1);
}
private void method_1()
{
if (this.class18_0.method_30_HasFileLoadedInBMTune())
{
if (!string.IsNullOrEmpty(this.class18_0.method_27()))
{
this.string_0 = this.class18_0.method_27() + @"\snapshots\";
}
this.method_8();
this.quickSaveListObjects_0.QuickSaveItem_0.Clear();
this.method_7();
}
}
public void method_2()
{
if (!this.class18_0.method_47() && !this.class18_0.method_48())
{
this.class18_0.method_155("Save Snapshot");
string str = string.Empty;
frmQuickSaveDesc desc = new frmQuickSaveDesc();
desc.ShowDialog();
if (desc.Tag == null)
{
desc.Dispose();
desc = null;
}
else
{
str = desc.Tag.ToString();
QuickSaveItem QuickSaveItem_1 = new QuickSaveItem {
description = str,
time = DateTime.Now,
filename = "snp" + this.quickSaveListObjects_0.QuickSaveItem_0.Count.ToString() + ".bin"
//filename = "snp" + this.quickSaveListObjects_0.quickSaveList.Count.ToString() + ".bml"
};
//this.class18_0.method_73(this.string_0 + item.filename); //save calibration .bml
try
{
if (!Directory.Exists(Path.GetDirectoryName(this.string_0 + QuickSaveItem_1.filename))) Directory.CreateDirectory(Path.GetDirectoryName(this.string_0 + QuickSaveItem_1.filename));
File.Create(this.string_0 + QuickSaveItem_1.filename).Dispose();
File.WriteAllBytes(this.string_0 + QuickSaveItem_1.filename, this.class18_0.GetAllByte());
}
catch (Exception exception)
{
MessageBox.Show(Form.ActiveForm, exception.Message, "BMTune", MessageBoxButtons.OK, MessageBoxIcon.Hand);
}
this.quickSaveListObjects_0.QuickSaveItem_0.Add(QuickSaveItem_1);
if (this.delegate63_0 != null)
{
this.delegate63_0();
}
}
}
}
public void method_3()
{
this.class18_0.method_155("Clear Snapshots");
this.quickSaveListObjects_0.QuickSaveItem_0.Clear();
FileInfo info = new FileInfo(this.string_0);
if (info.Directory.Exists)
{
foreach (FileInfo info2 in info.Directory.GetFiles())
{
info2.Delete();
}
}
DirectoryInfo info3 = new DirectoryInfo(this.string_0);
if (info3.Exists)
{
info3.Delete();
}
info3 = null;
if (this.delegate63_0 != null)
{
this.delegate63_0();
}
}
public Collection<QuickSaveItem> method_5()
{
return this.quickSaveListObjects_0.QuickSaveItem_0;
}
public void method_6(int int_1)
{
this.class18_0.method_155("Load Snapshot");
this.class18_0.method_75(this.string_0 + this.quickSaveListObjects_0.QuickSaveItem_0[int_1].filename, false, 1);
this.class18_0.method_65();
}
internal void method_7()
{
string fileName = this.string_0 + @"\snplist.pref";
//IFormatter formatter = new BinaryFormatter();
//Stream serializationStream = null;
FileInfo info = new FileInfo(fileName);
if (!info.Exists)
{
this.quickSaveListObjects_0 = new QuickSaveListObjects();
}
else
{
try
{
this.quickSaveListObjects_0 = new QuickSaveListObjects();
string[] AllLines = File.ReadAllLines(fileName);
if (AllLines.Length > 0)
{
for (int i = 0; i < AllLines.Length; i++)
{
if (AllLines[i].Contains("List"))
{
QuickSaveItem QuickSaveItem_0 = new QuickSaveItem();
string[] SplitCMD = AllLines[i].Split(',');
string[] SplitIndexEnc = SplitCMD[0].Split('=');
string[] SplitCmdEnc = SplitCMD[1].Split('=');
string[] SplitCMDDesc = AllLines[i + 1].Split(',');
string[] SplitCmdDescEnc = SplitCMDDesc[1].Split('=');
string[] SplitCMDTime = AllLines[i + 2].Split(',');
string[] SplitCmdTimeEnc = SplitCMDTime[1].Split('=');
if (SplitCmdEnc[0].Contains("filename")) QuickSaveItem_0.filename = SplitCmdEnc[1];
if (SplitCmdDescEnc[0].Contains("description")) QuickSaveItem_0.description = SplitCmdDescEnc[1];
try
{
if (SplitCmdTimeEnc[0].Contains("time")) QuickSaveItem_0.time = DateTime.ParseExact(SplitCmdTimeEnc[1], "dd/MM/yyyy HH:mm:ss", CultureInfo.InvariantCulture);
}
catch { }
this.quickSaveListObjects_0.QuickSaveItem_0.Add(QuickSaveItem_0);
i += 2;
}
}
}
//################
//serializationStream = new FileStream(fileName, FileMode.Open, FileAccess.Read, FileShare.Read);
//this.quickSaveListObjects_0 = (QuickSaveListObjects) formatter.Deserialize(serializationStream);
}
catch (Exception)
{
this.quickSaveListObjects_0 = new QuickSaveListObjects();
//method_8();
}
/*if (serializationStream != null)
{
serializationStream.Close();
serializationStream.Dispose();
serializationStream = null;
}
formatter = null;*/
info = null;
if (this.delegate63_0 != null) this.delegate63_0();
}
}
public void method_8()
{
string fileName = this.string_0 + @"\snplist.pref";
FileInfo info = new FileInfo(fileName);
if (info.Exists)
{
info.Delete();
}
if (this.quickSaveListObjects_0.QuickSaveItem_0.Count != 0)
{
string SaveStr = "";
for (int i = 0; i < this.quickSaveListObjects_0.QuickSaveItem_0.Count; i++)
{
SaveStr += "List=" + i + ",filename=" + this.quickSaveListObjects_0.QuickSaveItem_0[i].filename + Environment.NewLine;
SaveStr += "List=" + i + ",description=" + this.quickSaveListObjects_0.QuickSaveItem_0[i].description + Environment.NewLine;
SaveStr += "List=" + i + ",time=" + this.quickSaveListObjects_0.QuickSaveItem_0[i].time.ToString("dd/MM/yyyy HH:mm:ss", CultureInfo.InvariantCulture) + Environment.NewLine;
}
StreamWriter writer = new StreamWriter(fileName, false);
writer.Write(SaveStr);
writer.Close();
writer.Dispose();
writer = null;
//####################
/*IFormatter formatter = new BinaryFormatter();
Stream serializationStream = new FileStream(fileName, FileMode.Create, FileAccess.Write, FileShare.None);
formatter.Serialize(serializationStream, this.quickSaveListObjects_0);
serializationStream.Close();
serializationStream.Dispose();
formatter = null;*/
info = null;
this.quickSaveListObjects_0.QuickSaveItem_0.Clear();
if (this.delegate63_0 != null) this.delegate63_0();
}
}
public delegate void Delegate63();
}