62 lines
2.3 KiB
C#
62 lines
2.3 KiB
C#
using DataLayer;
|
|
using LibationWinForms.AvaloniaUI.Views.Dialogs;
|
|
using System;
|
|
using System.Linq;
|
|
using System.Threading.Tasks;
|
|
|
|
namespace LibationWinForms.AvaloniaUI.Views
|
|
{
|
|
//DONE
|
|
public partial class MainWindow
|
|
{
|
|
private void Configure_Liberate() { }
|
|
|
|
//GetLibrary_Flat_NoTracking() may take a long time on a hugh library. so run in new thread
|
|
public void beginBookBackupsToolStripMenuItem_Click(object _ = null, Avalonia.Interactivity.RoutedEventArgs __ = null)
|
|
{
|
|
try
|
|
{
|
|
SetQueueCollapseState(false);
|
|
|
|
Serilog.Log.Logger.Information("Begin backing up all library books");
|
|
|
|
processBookQueue1.AddDownloadDecrypt(
|
|
ApplicationServices.DbContexts
|
|
.GetLibrary_Flat_NoTracking()
|
|
.UnLiberated()
|
|
);
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
Serilog.Log.Logger.Error(ex, "An error occurred while backing up all library books");
|
|
}
|
|
}
|
|
|
|
public async void beginPdfBackupsToolStripMenuItem_Click(object sender, Avalonia.Interactivity.RoutedEventArgs args)
|
|
{
|
|
SetQueueCollapseState(false);
|
|
await Task.Run(() => processBookQueue1.AddDownloadPdf(ApplicationServices.DbContexts.GetLibrary_Flat_NoTracking()
|
|
.Where(lb => lb.Book.UserDefinedItem.PdfStatus is DataLayer.LiberatedStatus.NotLiberated)));
|
|
}
|
|
|
|
public async void convertAllM4bToMp3ToolStripMenuItem_Click(object sender, Avalonia.Interactivity.RoutedEventArgs args)
|
|
{
|
|
var result = await MessageBox.Show(
|
|
"This converts all m4b titles in your library to mp3 files. Original files are not deleted."
|
|
+ "\r\nFor large libraries this will take a long time and will take up more disk space."
|
|
+ "\r\n\r\nContinue?"
|
|
+ "\r\n\r\n(To always download titles as mp3 instead of m4b, go to Settings: Download my books as .MP3 files)",
|
|
"Convert all M4b => Mp3?",
|
|
MessageBoxButtons.YesNo,
|
|
MessageBoxIcon.Warning);
|
|
if (result == DialogResult.Yes)
|
|
{
|
|
SetQueueCollapseState(false);
|
|
await Task.Run(() => processBookQueue1.AddConvertMp3(ApplicationServices.DbContexts.GetLibrary_Flat_NoTracking()
|
|
.Where(lb => lb.Book.UserDefinedItem.BookStatus is DataLayer.LiberatedStatus.Liberated && lb.Book.ContentType is DataLayer.ContentType.Product)));
|
|
}
|
|
//Only Queue Liberated books for conversion. This isn't a perfect filter, but it's better than nothing.
|
|
}
|
|
}
|
|
}
|