private string TimeStamp(PopstationEventEnum @event) { var currentTime = DateTime.Now; switch (@event) { case PopstationEventEnum.ConvertProgress: case PopstationEventEnum.ExtractProgress: case PopstationEventEnum.WriteProgress: case PopstationEventEnum.DecompressProgress: break; default: return($"[{currentTime.Hour:00}:{currentTime.Minute:00}:{currentTime.Second:00}]: "); } return(string.Empty); }
private int GetLogLevel(PopstationEventEnum @event) { switch (@event) { case PopstationEventEnum.ProcessingStart: case PopstationEventEnum.ProcessingComplete: return(-1); case PopstationEventEnum.Error: return(-1); case PopstationEventEnum.Warning: return(1); case PopstationEventEnum.Info: return(3); case PopstationEventEnum.FileName: return(0); case PopstationEventEnum.GetIsoSize: case PopstationEventEnum.ConvertSize: case PopstationEventEnum.ExtractSize: case PopstationEventEnum.WriteSize: return(-1); case PopstationEventEnum.ConvertStart: case PopstationEventEnum.WriteStart: case PopstationEventEnum.ExtractStart: case PopstationEventEnum.DecompressStart: case PopstationEventEnum.ConvertProgress: case PopstationEventEnum.ExtractProgress: case PopstationEventEnum.WriteProgress: case PopstationEventEnum.DecompressProgress: case PopstationEventEnum.ConvertComplete: case PopstationEventEnum.ExtractComplete: case PopstationEventEnum.WriteComplete: case PopstationEventEnum.DecompressComplete: return(2); } return(-1); }
public void Notify(PopstationEventEnum @event, object value) { switch (@event) { case PopstationEventEnum.ProcessingStart: _startDateTime = DateTime.Now; WriteLine(@event, $"Processing started: {_startDateTime.Hour:00}:{_startDateTime.Minute:00}:{_startDateTime.Second:00}"); break; case PopstationEventEnum.ProcessingComplete: var elapsedSpan = DateTime.Now - _startDateTime; WriteLine(@event, $"Processing completed in {elapsedSpan.TotalHours:00}h {elapsedSpan.Minutes:00}m {elapsedSpan.Seconds:00}s"); break; case PopstationEventEnum.Error: WriteLine(@event, $"ERROR: {value}"); break; case PopstationEventEnum.Info: WriteLine(@event, $"INFO: {value}"); break; case PopstationEventEnum.Warning: WriteLine(@event, $"WARNING: {value}"); break; case PopstationEventEnum.ConvertStart: WriteLine(@event, $"Converting Disc {value}"); break; case PopstationEventEnum.WriteStart: WriteLine(@event, $"Writing Disc {value}"); break; case PopstationEventEnum.ExtractStart: WriteLine(@event, $"Extracting Disc {value}"); break; case PopstationEventEnum.DecompressStart: WriteLine(@event, $"Decompressing file {value}"); break; } }
private void WriteLine(PopstationEventEnum @event, string text) { File.AppendAllText(_path, TimeStamp(@event) + text + "\r\n"); }
public void Notify(PopstationEventEnum @event, object value) { switch (@event) { case PopstationEventEnum.ProcessingStart: break; case PopstationEventEnum.ProcessingComplete: Entry.MaxProgress = 100; Entry.Progress = 0; break; case PopstationEventEnum.Cancelled: _cancelled = true; break; case PopstationEventEnum.Error: Entry.Status = "Error"; Entry.MaxProgress = 100; Entry.Progress = 100; Entry.HasError = true; Entry.ErrorMessage += (string)value + "\r\n"; break; case PopstationEventEnum.FileName: case PopstationEventEnum.Info: break; case PopstationEventEnum.Warning: break; case PopstationEventEnum.GetIsoSize: _lastvalue = 0; Entry.MaxProgress = (uint)value; Entry.Progress = 0; break; case PopstationEventEnum.ConvertSize: case PopstationEventEnum.ExtractSize: case PopstationEventEnum.WriteSize: _lastvalue = 0; Entry.MaxProgress = (uint)value; Entry.Progress = 0; break; case PopstationEventEnum.ConvertStart: _action = "Converting"; break; case PopstationEventEnum.DiscStart: _action = $"Writing Disc {value}"; break; case PopstationEventEnum.ExtractStart: _action = "Extracting"; break; case PopstationEventEnum.DecompressStart: _action = "Decompressing"; break; case PopstationEventEnum.ExtractComplete: case PopstationEventEnum.DiscComplete: case PopstationEventEnum.DecompressComplete: break; case PopstationEventEnum.ConvertComplete: if (_cancelled) { Entry.Status = "Cancelled"; } else { Entry.Status = "Complete"; } break; case PopstationEventEnum.ConvertProgress: case PopstationEventEnum.ExtractProgress: case PopstationEventEnum.WriteProgress: _dispatcher.Invoke(() => { var percent = (uint)value / (float)Entry.MaxProgress * 100f; if (percent - _lastvalue >= 0.25) { Entry.Status = $"{_action} ({percent:F0}%)"; Entry.Progress = (uint)value; _lastvalue = percent; } }); break; case PopstationEventEnum.DecompressProgress: break; } }
public void Notify(PopstationEventEnum @event, object value) { if (GetLogLevel(@event) > _logLevel) { return; } switch (@event) { case PopstationEventEnum.ProcessingStart: _startDateTime = DateTime.Now; WriteLine(@event, $"Processing started: {_startDateTime.Hour:00}:{_startDateTime.Minute:00}:{_startDateTime.Second:00}"); break; case PopstationEventEnum.ProcessingComplete: var elapsedSpan = DateTime.Now - _startDateTime; WriteLine(@event, $"Processing completed: {elapsedSpan.TotalHours:00}h {elapsedSpan.Minutes:00}m {elapsedSpan.Seconds:00}s"); break; case PopstationEventEnum.Error: _charsToDelete = 0; Console.CursorVisible = true; WriteLine(@event, $"\r\n{value}"); break; case PopstationEventEnum.FileName: case PopstationEventEnum.Info: WriteLine(@event, $"{value}"); break; case PopstationEventEnum.Warning: var lastColor = Console.ForegroundColor; Console.ForegroundColor = ConsoleColor.DarkYellow; WriteLine(@event, $"WARNING: {value}"); Console.ForegroundColor = lastColor; break; case PopstationEventEnum.GetIsoSize: _total = Convert.ToInt64(value); break; case PopstationEventEnum.ConvertSize: case PopstationEventEnum.ExtractSize: case PopstationEventEnum.WriteSize: _total = Convert.ToInt64(value); break; case PopstationEventEnum.ConvertStart: Write(@event, $"Converting Disc {value} - "); _cursorYPos = Console.CursorTop; Console.CursorVisible = false; break; case PopstationEventEnum.WriteStart: Write(@event, $"Writing Disc {value} - "); _cursorYPos = Console.CursorTop; Console.CursorVisible = false; break; case PopstationEventEnum.ExtractStart: Write(@event, $"Extracting Disc {value} - "); _cursorYPos = Console.CursorTop; Console.CursorVisible = false; break; case PopstationEventEnum.DecompressStart: Write(@event, $"Decompressing file {value} - "); _cursorYPos = Console.CursorTop; Console.CursorVisible = false; break; case PopstationEventEnum.ConvertComplete: case PopstationEventEnum.ExtractComplete: case PopstationEventEnum.WriteComplete: case PopstationEventEnum.DecompressComplete: _charsToDelete = 0; Console.CursorVisible = true; Console.WriteLine(); break; case PopstationEventEnum.ConvertProgress: case PopstationEventEnum.ExtractProgress: case PopstationEventEnum.WriteProgress: //Console.SetCursorPosition(0, _cursorYPos); if (DateTime.Now.Ticks - _lastTicks > 100000) { Overwrite($"{Math.Round(Convert.ToInt32(value) / (double)_total * 100, 0) }%"); _lastTicks = DateTime.Now.Ticks; } break; case PopstationEventEnum.DecompressProgress: //Console.SetCursorPosition(0, _cursorYPos); if (DateTime.Now.Ticks - _lastTicks > 100000) { Overwrite($"{value}%"); _lastTicks = DateTime.Now.Ticks; } break; } }
private void Write(PopstationEventEnum @event, string text) { Console.Write(TimeStamp(@event) + text); }