mirror of
https://github.com/rmcrackan/Libation.git
synced 2026-01-23 05:08:07 -05:00
47 lines
1.5 KiB
C#
47 lines
1.5 KiB
C#
using DataLayer;
|
|
using LibationUiBase.ProcessQueue;
|
|
|
|
namespace LibationUiBase;
|
|
|
|
public class BookDataViewModel : ReactiveObject
|
|
{
|
|
public LibraryBook LibraryBook { get; }
|
|
public BookDataViewModel(LibraryBook libraryBook)
|
|
{
|
|
LibraryBook = libraryBook;
|
|
Asin = libraryBook.Book.AudibleProductId;
|
|
Title = libraryBook.Book.Title;
|
|
}
|
|
public string Asin { get; }
|
|
public string Title { get; }
|
|
public string? FoundFile { get => field; set => RaiseAndSetIfChanged(ref field, value); }
|
|
public string? Codec { get => field; set => RaiseAndSetIfChanged(ref field, value); }
|
|
public string? AvailableCodec { get => field; set => RaiseAndSetIfChanged(ref field, value); }
|
|
public int Bitrate
|
|
{
|
|
get => field;
|
|
set
|
|
{
|
|
RaiseAndSetIfChanged(ref field, value);
|
|
BitrateString = GetBitrateString(value);
|
|
}
|
|
}
|
|
public int AvailableBitrate
|
|
{
|
|
get => field;
|
|
set
|
|
{
|
|
RaiseAndSetIfChanged(ref field, value);
|
|
AvailableBitrateString = GetBitrateString(value);
|
|
var diff = (double)AvailableBitrate / Bitrate;
|
|
IsSignificant = diff >= 1.15;
|
|
}
|
|
}
|
|
|
|
public string? BitrateString { get => field; private set => RaiseAndSetIfChanged(ref field, value); }
|
|
public string? AvailableBitrateString { get => field; private set => RaiseAndSetIfChanged(ref field, value); }
|
|
public bool IsSignificant { get => field; private set => RaiseAndSetIfChanged(ref field, value); }
|
|
public ProcessBookStatus ScanStatus { get => field; set => RaiseAndSetIfChanged(ref field, value); }
|
|
private static string? GetBitrateString(int bitrate) => bitrate > 0 ? $"{bitrate} kbps" : null;
|
|
}
|