laatzen/GenesisDisplayTool/Files.cs
2021-10-01 11:10:17 +02:00

392 lines
15 KiB
C#

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Globalization;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Drawing.Printing;
using ZedGraph;
using System.IO;
namespace GenesisDisplayTool
{
public static class Files
{
#region Open files/ save to file
public static Boolean OpenText(out String textToGet, String fullpath, CultureInfo culture)
{
Boolean OpeningOk = false;
textToGet = String.Empty;
try
{
textToGet = File.ReadAllText(fullpath);
OpeningOk = true;
}
catch (Exception ex)
{
ErrorLog.Log(LogErrReason.Exception(), " Files.OpenText() failed", $"0x{ex.HResult.ToString("X", culture)}", String.Empty);
}
return OpeningOk;
}
public static Boolean SaveText(String textToWrite, String fullpath, CultureInfo culture)
{
Boolean SavingOK = false;
try
{
File.WriteAllText(fullpath, textToWrite);
SavingOK = true;
}
catch (Exception ex)
{
ErrorLog.Log(LogErrReason.Exception(), " Files.SaveText() failed", $"0x{ex.HResult.ToString("X", culture)}", String.Empty);
}
return SavingOK;
}
public static Boolean SaveImage(ZedGraphControl graph, String fullpath, CultureInfo culture)
{
Boolean SavingOK = false;
try
{
graph.MasterPane.GetImage(1080, 640, 600, true).Save(fullpath);
SavingOK = true;
}
catch (Exception ex)
{
ErrorLog.Log(LogErrReason.Exception(), " Files.SaveToImage() failed", $"0x{ex.HResult.ToString("X", culture)}", String.Empty);
}
return SavingOK;
}
public static Boolean SavePdf(PdfSharp.Pdf.PdfDocument document, String fullpath)
{
Boolean SavingOK = false;
try
{
Task.Run(() =>
{
document.Save(@fullpath);
System.Diagnostics.Process.Start(@fullpath);
});
SavingOK = true;
}
catch (Exception ex)
{
ErrorLog.Log(LogErrReason.Exception(), " Files.SavePdf() failed", "0x" + ex.HResult.ToString("X", GENESIS_DISPLAY_TOOL._GENESIS_DISPLAY_TOOL.GetGlobalCulture()), String.Empty);
}
return SavingOK;
}
#endregion
#region File dialogs
public static Boolean SaveFiledialogPdf(String itemname, ref String fullpath, String initialDirectory)
{
#region Definitions and initializations
String FullFilename = String.Empty;
Boolean DialogOK = false;
#endregion
#region Everything else
try
{
#region Set Filename
FullFilename = $"{DateTime.Now.ToString(Formats.PdfDateTimeString)}GENESIS_{itemname}.pdf";
#endregion
#region SaveFileDialog
SaveFileDialog saveFileDialog1 = new SaveFileDialog();
saveFileDialog1.Filter = "document (*.pdf)|*.pdf";
saveFileDialog1.FilterIndex = 2;
saveFileDialog1.RestoreDirectory = true;
saveFileDialog1.FileName = FullFilename;
if (Directory.Exists(initialDirectory))
saveFileDialog1.InitialDirectory = initialDirectory;
#endregion
#region Save to file
if (OpenFileDialog.Equals(saveFileDialog1.ShowDialog(), DialogResult.OK))
{
DialogOK = true;
fullpath = Path.GetFullPath(saveFileDialog1.FileName);
}
#endregion
}
catch (Exception ex)
{
ErrorLog.Log(LogErrReason.Exception(), " Files.SaveFiledialogPdf() failed", $"0x{ex.HResult.ToString("X", GENESIS_DISPLAY_TOOL._GENESIS_DISPLAY_TOOL.GetGlobalCulture())}", String.Empty);
}
#endregion
return DialogOK;
}
public static Boolean SaveFiledialogPng(String itemname, out String fullpath, String initialDirectory)
{
#region Definitions and initializations
String FullFilename = String.Empty;
Boolean DialogOK = false;
fullpath = String.Empty;
#endregion
#region Everything else
try
{
#region Set Filename
FullFilename = $"{ DateTime.Now.ToString(Formats.ImageFileDateTimeString)}GENESIS_{itemname}.png";
#endregion
#region SaveFileDialog
SaveFileDialog saveFileDialog1 = new SaveFileDialog();
saveFileDialog1.Filter = "image (*.png)|*.png";
saveFileDialog1.FilterIndex = 2;
saveFileDialog1.RestoreDirectory = true;
saveFileDialog1.FileName = FullFilename;
if (Directory.Exists(initialDirectory))
saveFileDialog1.InitialDirectory = initialDirectory;
#endregion
#region Save to file
if (OpenFileDialog.Equals(saveFileDialog1.ShowDialog(), DialogResult.OK))
{
DialogOK = true;
fullpath = Path.GetFullPath(saveFileDialog1.FileName);
}
saveFileDialog1.Dispose();
#endregion
}
catch (Exception ex)
{
ErrorLog.Log(LogErrReason.Exception(), " Files.SaveFiledialogPng() failed", $"0x{ex.HResult.ToString("X", GENESIS_DISPLAY_TOOL._GENESIS_DISPLAY_TOOL.GetGlobalCulture())}", String.Empty);
}
#endregion
return DialogOK;
}
public static Boolean SaveFiledialogCsv(String itemname, out String fullpath, String initialDirectory)
{
#region Definitions and initializations
String FullFilename = String.Empty;
Boolean DialogOK = false;
fullpath = String.Empty;
#endregion
#region Everything else
try
{
#region Set Filename
FullFilename = DateTime.Now.ToString(Formats.CsvFileDateTimeString) +"GENESIS_"+ itemname + ".csv";
#endregion
#region SaveFileDialog
SaveFileDialog saveFileDialog1 = new SaveFileDialog();
saveFileDialog1.Filter = "comma separated values (*.csv)|*.csv";
saveFileDialog1.FilterIndex = 2;
saveFileDialog1.RestoreDirectory = true;
saveFileDialog1.FileName = FullFilename;
if (Directory.Exists(initialDirectory))
saveFileDialog1.InitialDirectory = initialDirectory;
#endregion
#region Save to file
if (saveFileDialog1.ShowDialog() == DialogResult.OK)
{
DialogOK = true;
fullpath = Path.GetFullPath(saveFileDialog1.FileName);
}
#endregion
}
catch (Exception ex)
{
ErrorLog.Log(LogErrReason.Exception(), " Files.SaveFiledialogCsv() failed", "0x" + ex.HResult.ToString("X", GENESIS_DISPLAY_TOOL._GENESIS_DISPLAY_TOOL.GetGlobalCulture()), String.Empty);
}
#endregion
return DialogOK;
}
public static Boolean SaveFiledialogConversion(String itemname, ref String fullpath, String initialDirectory)
{
#region Definitions and initializations
String FullFilename = String.Empty;
Boolean DialogOK = false;
#endregion
#region Everything else
try
{
#region Set Filename
FullFilename = itemname + ".csv";
#endregion
#region SaveFileDialog
SaveFileDialog saveFileDialog1 = new SaveFileDialog();
saveFileDialog1.Filter = "comma separated values (*.csv)|*.csv";
saveFileDialog1.FilterIndex = 2;
saveFileDialog1.RestoreDirectory = true;
saveFileDialog1.FileName = FullFilename;
if (Directory.Exists(initialDirectory))
saveFileDialog1.InitialDirectory = initialDirectory;
#endregion
#region Save to file
if (saveFileDialog1.ShowDialog() == DialogResult.OK)
{
DialogOK = true;
fullpath = Path.GetFullPath(saveFileDialog1.FileName);
}
#endregion
}
catch (Exception ex)
{
ErrorLog.Log(LogErrReason.Exception(), " Files.SaveFiledialogConversion() failed", "0x" + ex.HResult.ToString("X", GENESIS_DISPLAY_TOOL._GENESIS_DISPLAY_TOOL.GetGlobalCulture()), String.Empty);
}
#endregion
return DialogOK;
}
public static Boolean SaveFiledialogTxt(String itemname, out String fullpath, String initialDirectory)
{
#region Definitions and initializations
String FullFilename = String.Empty;
fullpath = String.Empty;
Boolean DialogOK = false;
#endregion
#region Everything else
try
{
#region Set Filename
FullFilename = $"{DateTime.Now.ToString(Formats.TxtFileDateTimeString)}GENESIS_{itemname}.txt";
#endregion
#region SaveFileDialog
SaveFileDialog saveFileDialog1 = new SaveFileDialog();
saveFileDialog1.Filter = "text files (*.txt)|*.txt";
saveFileDialog1.FilterIndex = 2;
saveFileDialog1.RestoreDirectory = true;
saveFileDialog1.FileName = FullFilename;
if (Directory.Exists(initialDirectory))
saveFileDialog1.InitialDirectory = initialDirectory;
#endregion
#region Save to file
if (saveFileDialog1.ShowDialog() == DialogResult.OK)
{
DialogOK = true;
fullpath = Path.GetFullPath(saveFileDialog1.FileName);
}
#endregion
}
catch (Exception ex)
{
ErrorLog.Log(LogErrReason.Exception(), " Files.SaveFiledialogTxt() failed", $"0x{ex.HResult.ToString("X")}", String.Empty);
}
#endregion
return DialogOK;
}
public static Boolean OpenFileDialogText(out String fullpath, String initialDirectory)
{
#region Definitions and initializations
String Filename = String.Empty;
String FileContent = String.Empty;
Boolean DialogOK = false;
fullpath = String.Empty;
#endregion
#region File dialog
OpenFileDialog openFileDialog1 = new OpenFileDialog();
openFileDialog1.Filter = "text files (*.txt)|*.txt";
openFileDialog1.FilterIndex = 2;
openFileDialog1.RestoreDirectory = true;
openFileDialog1.FileName = Filename;
if (Directory.Exists(initialDirectory))
openFileDialog1.InitialDirectory = initialDirectory;
#endregion
#region Open file
try
{
// -- open file --
if (OpenFileDialog.Equals(openFileDialog1.ShowDialog(), DialogResult.OK))
{
#region Get PATH
fullpath = Path.GetFullPath(openFileDialog1.FileName);
DialogOK = true;
#endregion
}
}
catch (Exception ex)
{
ErrorLog.Log(LogErrReason.Exception(), "Files.OpenFileDialogText() failed", $"0x{ex.HResult.ToString("X", GENESIS_DISPLAY_TOOL._GENESIS_DISPLAY_TOOL.GetGlobalCulture())}", String.Empty);
}
#endregion
#region Return
return DialogOK;
#endregion
}
public static Boolean OpenFileDialogJson(ref String fullpath, String initialDirectory)
{
#region Definitions and initializations
String Filename = String.Empty;
String FileContent = String.Empty;
Boolean DialogOK = false;
#endregion
#region File dialog
OpenFileDialog openFileDialog1 = new OpenFileDialog();
openFileDialog1.Filter = "json files (*.json)|*.json";
openFileDialog1.FilterIndex = 2;
openFileDialog1.RestoreDirectory = true;
openFileDialog1.FileName = Filename;
if (Directory.Exists(initialDirectory))
openFileDialog1.InitialDirectory = initialDirectory;
#endregion
#region Open file
// -- open file --
if (OpenFileDialog.Equals(openFileDialog1.ShowDialog(), DialogResult.OK))
{
#region Get PATH
fullpath = Path.GetFullPath(openFileDialog1.FileName);
DialogOK = true;
#endregion
}
#endregion
#region Return
return DialogOK;
#endregion
}
public static Boolean OpenFileDialogCsv(ref String fullpath, String initialDirectory)
{
#region Definitions and initializations
String Filename = String.Empty;
String FileContent = String.Empty;
Boolean DialogOK = false;
#endregion
#region File dialog
OpenFileDialog openFileDialog1 = new OpenFileDialog();
openFileDialog1.Filter = "Comma seperated values (*.csv)|*.csv";
openFileDialog1.FilterIndex = 2;
openFileDialog1.RestoreDirectory = true;
openFileDialog1.FileName = Filename;
if (Directory.Exists(initialDirectory))
openFileDialog1.InitialDirectory = initialDirectory;
#endregion
#region Open file
try
{
// -- open file --
if (openFileDialog1.ShowDialog() == DialogResult.OK)
{
#region Get PATH
fullpath = Path.GetFullPath(openFileDialog1.FileName);
DialogOK = true;
#endregion
}
}
catch (Exception ex)
{
ErrorLog.Log(LogErrReason.Exception(), "Files.OpenFileDialogCsv() failed", "0x" + ex.HResult.ToString("X"), String.Empty);
}
#endregion
#region Return
return DialogOK;
#endregion
}
#endregion
}
}