/* This file is part of OpenSubtitles Handler A library that handle OpenSubtitles.org XML-RPC methods. Copyright © Ala Ibrahim Hadid 2013 This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ using System; namespace OpenSubtitlesHandler.Console { public class OSHConsole { /// /// Write line to the console and raise the "LineWritten" event /// /// /// The debug line /// The status public static void WriteLine(string text, DebugCode code = DebugCode.None) { if (LineWritten != null) LineWritten(null, new DebugEventArgs(text, code)); } /// /// Update the last written line /// /// The debug line /// The status public static void UpdateLine(string text, DebugCode code = DebugCode.None) { if (UpdateLastLine != null) UpdateLastLine(null, new DebugEventArgs(text, code)); } public static event EventHandler LineWritten; public static event EventHandler UpdateLastLine; } public enum DebugCode { None, Good, Warning, Error } /// /// Console Debug Args /// public class DebugEventArgs : System.EventArgs { public DebugCode Code { get; private set; } public string Text { get; private set; } /// /// Console Debug Args /// /// The debug line /// The status public DebugEventArgs(string text, DebugCode code) { this.Text = text; this.Code = code; } } public struct DebugLine { public DebugLine(string debugLine, DebugCode status) { this.debugLine = debugLine; this.status = status; } string debugLine; DebugCode status; public string Text { get { return debugLine; } set { debugLine = value; } } public DebugCode Code { get { return status; } set { status = value; } } } }