mirror of
https://github.com/rmcrackan/Libation.git
synced 2026-10-10 05:04:15 -04:00
* cleaned up unused code, old forms, ProcessorAutomationController... * what's left of LogMe and ProcessorAutomationController should be moved eventually
73 lines
2.3 KiB
C#
73 lines
2.3 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Threading.Tasks;
|
|
using System.Windows.Forms;
|
|
using FileLiberator;
|
|
|
|
namespace LibationWinForms.BookLiberation
|
|
{
|
|
// decouple serilog and form. include convenience factory method
|
|
public class LogMe
|
|
{
|
|
public event EventHandler<string> LogInfo;
|
|
public event EventHandler<string> LogErrorString;
|
|
public event EventHandler<(Exception, string)> LogError;
|
|
|
|
private LogMe()
|
|
{
|
|
LogInfo += (_, text) => Serilog.Log.Logger.Information($"Automated backup: {text}");
|
|
LogErrorString += (_, text) => Serilog.Log.Logger.Error(text);
|
|
LogError += (_, tuple) => Serilog.Log.Logger.Error(tuple.Item1, tuple.Item2 ?? "Automated backup: error");
|
|
}
|
|
|
|
public static LogMe RegisterForm<T>(T form) where T : ILogForm
|
|
{
|
|
var logMe = new LogMe();
|
|
|
|
if (form is null)
|
|
return logMe;
|
|
|
|
logMe.LogInfo += (_, text) => form?.WriteLine(text);
|
|
|
|
logMe.LogErrorString += (_, text) => form?.WriteLine(text);
|
|
|
|
logMe.LogError += (_, tuple) =>
|
|
{
|
|
form?.WriteLine(tuple.Item2 ?? "Automated backup: error");
|
|
form?.WriteLine("ERROR: " + tuple.Item1.Message);
|
|
};
|
|
|
|
return logMe;
|
|
}
|
|
|
|
public void Info(string text) => LogInfo?.Invoke(this, text);
|
|
public void Error(string text) => LogErrorString?.Invoke(this, text);
|
|
public void Error(Exception ex, string text = null) => LogError?.Invoke(this, (ex, text));
|
|
}
|
|
|
|
public static class ProcessorAutomationController
|
|
{
|
|
public static void DownloadFile(string url, string destination, bool showDownloadCompletedDialog = false)
|
|
{
|
|
Serilog.Log.Logger.Information($"Begin {nameof(DownloadFile)} for {url}");
|
|
|
|
void onDownloadFileStreamingCompleted(object sender, string savedFile)
|
|
{
|
|
Serilog.Log.Logger.Information($"Completed {nameof(DownloadFile)} for {url}. Saved to {savedFile}");
|
|
|
|
if (showDownloadCompletedDialog)
|
|
MessageBox.Show($"File downloaded to:{Environment.NewLine}{Environment.NewLine}{savedFile}");
|
|
}
|
|
|
|
var downloadFile = new DownloadFile();
|
|
var downloadForm = new DownloadForm();
|
|
downloadForm.RegisterFileLiberator(downloadFile);
|
|
downloadFile.StreamingCompleted += onDownloadFileStreamingCompleted;
|
|
|
|
async void runDownload() => await downloadFile.PerformDownloadFileAsync(url, destination);
|
|
new Task(runDownload).Start();
|
|
}
|
|
}
|
|
}
|