using System; using System.IO; namespace Volian.Base.Library { public class DebugPrint:IDisposable { public void Dispose() => Close(); private StreamWriter _MyStreamWriter = null; public StreamWriter MyStreamWriter { get { return _MyStreamWriter; } set { if (_MyStreamWriter != null) { _MyStreamWriter.Flush(); _MyStreamWriter.Close(); } _MyStreamWriter = value; } } public bool IsOpen => MyStreamWriter != null; private string _FileName = null; public string FileName { get { return _FileName; } set { if (IsOpen) Close(); _FileName = value; MyFileInfo = new FileInfo(value); } } public FileInfo MyFileInfo { get; set; } public void Open(string fileName) { FileName = fileName; MyStreamWriter = MyFileInfo.CreateText(); } public void Close() => MyStreamWriter = null; public void Write(string format, params object[] args) { if (IsOpen) MyStreamWriter.Write(format, args); } public void WriteLine(string format, params object[] args) { if (IsOpen) MyStreamWriter.WriteLine(format, args); } public void Show() { Close(); if (FileName != null) System.Diagnostics.Process.Start(FileName); //System.Diagnostics.Process.Start("Explorer", "/select," + FileName); } } public static class DebugPagination { public static int TotalPages { get; set; } = 0; private static readonly DebugPrint _MyDebugPrint = new DebugPrint(); public static void Open(string fileName) => _MyDebugPrint.Open(fileName); public static void Close() { WriteLine("{0} Total Pages", TotalPages); _MyDebugPrint.Close(); } public static void Write(string format, params object[] args) => _MyDebugPrint.Write(format, args); public static void WriteLine(string format, params object[] args) => _MyDebugPrint.WriteLine(format, args); public static void Show() => _MyDebugPrint.Show(); public static bool IsOpen => _MyDebugPrint.IsOpen; } public static class DebugText { private static readonly DebugPrint _MyDebugPrint = new DebugPrint(); public static void Open(string fileName) => _MyDebugPrint.Open(fileName); public static void Close() => _MyDebugPrint.Close(); public static void Write(string format, params object[] args) => _MyDebugPrint.Write(format, args); public static void WriteLine(string format, params object[] args) => _MyDebugPrint.WriteLine(format, args); public static void Show() => _MyDebugPrint.Show(); public static bool IsOpen => _MyDebugPrint.IsOpen; } public static class DebugProfile { private static DebugPrint _MyDebugPrint = new DebugPrint(); public static void Open(string fileName) => _MyDebugPrint.Open(fileName); public static void Close() { _MyDebugPrint.Close(); _MyDebugPrint = null; } public static void Write(string format, params object[] args) => _MyDebugPrint.Write(format, args); public static void WriteLine(string format, params object[] args) => _MyDebugPrint.WriteLine(format, args); public static void Show() => _MyDebugPrint.Show(); public static bool IsOpen => _MyDebugPrint.IsOpen; } public static class DebugDBTrack { private static DebugPrint _MyDebugPrint = new DebugPrint(); public static void Open(string fileName) => _MyDebugPrint.Open(fileName); public static void Close() { _MyDebugPrint.Close(); _MyDebugPrint = null; } public static void Write(string format, params object[] args) => _MyDebugPrint.Write(format, args); public static void WriteLine(string format, params object[] args) => _MyDebugPrint.WriteLine(format, args); public static void Show() => _MyDebugPrint.Show(); public static bool IsOpen => _MyDebugPrint.IsOpen; } // C2018-004 create meta file for baseline compares public static class BaselineMetaFile { private static readonly DebugPrint _MyDebugPrint = new DebugPrint(); public static void Open(string fileName) => _MyDebugPrint.Open(fileName); public static void Close() => _MyDebugPrint.Close(); public static void Write(string format, params object[] args) => _MyDebugPrint.Write(format, args); public static void WriteLine(string format, params object[] args) => _MyDebugPrint.WriteLine(format, args); public static void Show() => _MyDebugPrint.Show(); public static bool IsOpen => _MyDebugPrint.IsOpen; public static bool IncludeWordSecText { get; set; } = true; } }