mirror of
https://github.com/rmcrackan/Libation.git
synced 2026-03-25 02:13:27 -04:00
Make fields readonly Remove unnecessary casts Format document Remove unnecessary usings Sort usings Use file-level namespaces Order modifiers
44 lines
990 B
C#
44 lines
990 B
C#
using AudibleApi.Common;
|
|
using DataLayer;
|
|
using System;
|
|
using System.Threading.Tasks;
|
|
|
|
namespace LibationUiBase.SeriesView;
|
|
|
|
/// <summary>
|
|
/// base view model for the Series Viewer 'Availability' button column
|
|
/// </summary>
|
|
public abstract class SeriesButton : ReactiveObject, IComparable
|
|
{
|
|
private bool inLibrary;
|
|
protected Item Item { get; }
|
|
public abstract string DisplayText { get; }
|
|
public abstract bool HasButtonAction { get; }
|
|
public abstract bool Enabled { get; protected set; }
|
|
public bool InLibrary
|
|
{
|
|
get => inLibrary;
|
|
protected set
|
|
{
|
|
if (inLibrary != value)
|
|
{
|
|
inLibrary = value;
|
|
RaisePropertyChanged(nameof(InLibrary));
|
|
RaisePropertyChanged(nameof(DisplayText));
|
|
}
|
|
}
|
|
}
|
|
|
|
protected SeriesButton(Item item, bool inLibrary)
|
|
{
|
|
Item = item;
|
|
this.inLibrary = inLibrary;
|
|
}
|
|
|
|
public abstract Task PerformClickAsync(LibraryBook accountBook);
|
|
|
|
public override string ToString() => DisplayText;
|
|
|
|
public abstract int CompareTo(object? ob);
|
|
}
|