@@ -31,60 +31,60 @@
@_data?.Name
+ Href="@($"media/collections/{Id}/edit")"/>
@if (_data?.MovieCards.Count > 0)
{
-
@_data.MovieCards.Count Movies
+
@_data.MovieCards.Count Movies
}
@if (_data?.ShowCards.Count > 0)
{
-
@_data.ShowCards.Count Shows
+
@_data.ShowCards.Count Shows
}
@if (_data?.SeasonCards.Count > 0)
{
-
@_data.SeasonCards.Count Seasons
+
@_data.SeasonCards.Count Seasons
}
@if (_data?.EpisodeCards.Count > 0)
{
-
@_data.EpisodeCards.Count Episodes
+
@_data.EpisodeCards.Count Episodes
}
@if (_data?.ArtistCards.Count > 0)
{
-
@_data.ArtistCards.Count Artists
+
@_data.ArtistCards.Count Artists
}
@if (_data?.MusicVideoCards.Count > 0)
{
-
@_data.MusicVideoCards.Count Music Videos
+
@_data.MusicVideoCards.Count Music Videos
}
@if (_data?.OtherVideoCards.Count > 0)
{
-
@_data.OtherVideoCards.Count Other Videos
+
@_data.OtherVideoCards.Count Other Videos
}
@if (_data?.SongCards.Count > 0)
{
-
@_data.SongCards.Count Songs
+
@_data.SongCards.Count Songs
}
@if (_data?.ImageCards.Count > 0)
{
-
@_data.ImageCards.Count Images
+
@_data.ImageCards.Count Images
}
@if (SupportsCustomOrdering())
{
}
@@ -106,7 +106,7 @@
@foreach (MovieCardViewModel card in OrderMovies(_data.MovieCards))
{
m.SortTitle))
{
m.SortTitle))
{
e.Aired))
{
e.SortTitle))
{
e.SortTitle))
{
e.SortTitle))
{
e.SortTitle))
{
e.SortTitle))
{
_data = result,
- _ => _navigationManager.NavigateTo("404"));
+ _ => NavigationManager.NavigateTo("404"));
}
private IOrderedEnumerable OrderMovies(List movies)
@@ -349,14 +349,14 @@
{
try
{
- await _jsRuntime.InvokeVoidAsync("sortableCollection", Id);
+ await JsRuntime.InvokeVoidAsync("sortableCollection", Id);
if (_data.UseCustomPlaybackOrder)
{
- await _jsRuntime.InvokeVoidAsync("enableSorting");
+ await JsRuntime.InvokeVoidAsync("enableSorting");
}
else
{
- await _jsRuntime.InvokeVoidAsync("disableSorting");
+ await JsRuntime.InvokeVoidAsync("disableSorting");
}
}
catch (Exception)
@@ -391,7 +391,7 @@
{
var request = new RemoveItemsFromCollection(Id)
{
- MediaItemIds = new List { movie.MovieId }
+ MediaItemIds = [movie.MovieId]
};
await RemoveItemsWithConfirmation("movie", $"{movie.Title} ({movie.Subtitle})", request);
@@ -404,7 +404,7 @@
{
var request = new RemoveItemsFromCollection(Id)
{
- MediaItemIds = new List { artist.ArtistId }
+ MediaItemIds = [artist.ArtistId]
};
await RemoveItemsWithConfirmation(
@@ -420,7 +420,7 @@
{
var request = new RemoveItemsFromCollection(Id)
{
- MediaItemIds = new List { musicVideo.MusicVideoId }
+ MediaItemIds = [musicVideo.MusicVideoId]
};
await RemoveItemsWithConfirmation("music video", $"{musicVideo.Title} ({musicVideo.Subtitle})", request);
@@ -433,7 +433,7 @@
{
var request = new RemoveItemsFromCollection(Id)
{
- MediaItemIds = new List { show.TelevisionShowId }
+ MediaItemIds = [show.TelevisionShowId]
};
await RemoveItemsWithConfirmation("show", $"{show.Title} ({show.Subtitle})", request);
@@ -446,7 +446,7 @@
{
var request = new RemoveItemsFromCollection(Id)
{
- MediaItemIds = new List { season.TelevisionSeasonId }
+ MediaItemIds = [season.TelevisionSeasonId]
};
await RemoveItemsWithConfirmation("season", $"{season.ShowTitle} - {season.Title}", request);
@@ -457,7 +457,7 @@
{
var request = new RemoveItemsFromCollection(Id)
{
- MediaItemIds = new List { episode.EpisodeId }
+ MediaItemIds = [episode.EpisodeId]
};
await RemoveItemsWithConfirmation("episode", $"{episode.ShowTitle} - {episode.Title}", request);
@@ -469,7 +469,7 @@
{
var request = new RemoveItemsFromCollection(Id)
{
- MediaItemIds = new List { otherVideo.OtherVideoId }
+ MediaItemIds = [otherVideo.OtherVideoId]
};
await RemoveItemsWithConfirmation("other video", $"{otherVideo.Title}", request);
@@ -482,7 +482,7 @@
{
var request = new RemoveItemsFromCollection(Id)
{
- MediaItemIds = new List { song.SongId }
+ MediaItemIds = [song.SongId]
};
await RemoveItemsWithConfirmation("song", $"{song.Title}", request);
diff --git a/ErsatzTV/Pages/Collections.razor b/ErsatzTV/Pages/Collections.razor
index 9adf82789..d6a23f0bc 100644
--- a/ErsatzTV/Pages/Collections.razor
+++ b/ErsatzTV/Pages/Collections.razor
@@ -3,15 +3,15 @@
@using ErsatzTV.Application.MediaCollections
@using ErsatzTV.Application.Configuration
@implements IDisposable
-@inject IDialogService _dialog
-@inject IMediator _mediator
+@inject IDialogService Dialog
+@inject IMediator Mediator
-
+
Add Collection
-
+
Add Multi Collection
@@ -38,7 +38,7 @@
+ Href="@($"media/collections/{context.Id}")">
@@ -76,7 +76,7 @@
+ Href="@($"media/multi-collections/{context.Id}/edit")">
@@ -114,7 +114,7 @@
+ Href="@context.Query.GetRelativeSearchQuery()">
@@ -150,13 +150,13 @@
protected override async Task OnParametersSetAsync()
{
- _collectionsRowsPerPage = await _mediator.Send(new GetConfigElementByKey(ConfigElementKey.CollectionsPageSize), _cts.Token)
+ _collectionsRowsPerPage = await Mediator.Send(new GetConfigElementByKey(ConfigElementKey.CollectionsPageSize), _cts.Token)
.Map(maybeRows => maybeRows.Match(ce => int.TryParse(ce.Value, out int rows) ? rows : 10, () => 10));
- _multiCollectionsRowsPerPage = await _mediator.Send(new GetConfigElementByKey(ConfigElementKey.MultiCollectionsPageSize), _cts.Token)
+ _multiCollectionsRowsPerPage = await Mediator.Send(new GetConfigElementByKey(ConfigElementKey.MultiCollectionsPageSize), _cts.Token)
.Map(maybeRows => maybeRows.Match(ce => int.TryParse(ce.Value, out int rows) ? rows : 10, () => 10));
- _smartCollectionsRowsPerPage = await _mediator.Send(new GetConfigElementByKey(ConfigElementKey.SmartCollectionsPageSize), _cts.Token)
+ _smartCollectionsRowsPerPage = await Mediator.Send(new GetConfigElementByKey(ConfigElementKey.SmartCollectionsPageSize), _cts.Token)
.Map(maybeRows => maybeRows.Match(ce => int.TryParse(ce.Value, out int rows) ? rows : 10, () => 10));
}
@@ -165,11 +165,11 @@
var parameters = new DialogParameters { { "EntityType", "collection" }, { "EntityName", collection.Name } };
var options = new DialogOptions { CloseButton = true, MaxWidth = MaxWidth.ExtraSmall };
- IDialogReference dialog = await _dialog.ShowAsync("Delete Collection", parameters, options);
+ IDialogReference dialog = await Dialog.ShowAsync("Delete Collection", parameters, options);
DialogResult result = await dialog.Result;
if (!result.Canceled)
{
- await _mediator.Send(new DeleteCollection(collection.Id), _cts.Token);
+ await Mediator.Send(new DeleteCollection(collection.Id), _cts.Token);
if (_collectionsTable != null)
{
await _collectionsTable.ReloadServerData();
@@ -182,11 +182,11 @@
var parameters = new DialogParameters { { "EntityType", "multi collection" }, { "EntityName", collection.Name } };
var options = new DialogOptions { CloseButton = true, MaxWidth = MaxWidth.ExtraSmall };
- IDialogReference dialog = await _dialog.ShowAsync("Delete Multi Collection", parameters, options);
+ IDialogReference dialog = await Dialog.ShowAsync("Delete Multi Collection", parameters, options);
DialogResult result = await dialog.Result;
if (!result.Canceled)
{
- await _mediator.Send(new DeleteMultiCollection(collection.Id), _cts.Token);
+ await Mediator.Send(new DeleteMultiCollection(collection.Id), _cts.Token);
if (_multiCollectionsTable != null)
{
await _multiCollectionsTable.ReloadServerData();
@@ -199,11 +199,11 @@
var parameters = new DialogParameters { { "EntityType", "smart collection" }, { "EntityName", collection.Name } };
var options = new DialogOptions { CloseButton = true, MaxWidth = MaxWidth.ExtraSmall };
- IDialogReference dialog = await _dialog.ShowAsync("Delete Smart Collection", parameters, options);
+ IDialogReference dialog = await Dialog.ShowAsync("Delete Smart Collection", parameters, options);
DialogResult result = await dialog.Result;
if (!result.Canceled)
{
- await _mediator.Send(new DeleteSmartCollection(collection.Id), _cts.Token);
+ await Mediator.Send(new DeleteSmartCollection(collection.Id), _cts.Token);
if (_smartCollectionsTable != null)
{
await _smartCollectionsTable.ReloadServerData();
@@ -213,25 +213,25 @@
private async Task> ServerReloadCollections(TableState state)
{
- await _mediator.Send(new SaveConfigElementByKey(ConfigElementKey.CollectionsPageSize, state.PageSize.ToString()), _cts.Token);
+ await Mediator.Send(new SaveConfigElementByKey(ConfigElementKey.CollectionsPageSize, state.PageSize.ToString()), _cts.Token);
- PagedMediaCollectionsViewModel data = await _mediator.Send(new GetPagedCollections(state.Page, state.PageSize), _cts.Token);
+ PagedMediaCollectionsViewModel data = await Mediator.Send(new GetPagedCollections(state.Page, state.PageSize), _cts.Token);
return new TableData { TotalItems = data.TotalCount, Items = data.Page };
}
private async Task> ServerReloadMultiCollections(TableState state)
{
- await _mediator.Send(new SaveConfigElementByKey(ConfigElementKey.MultiCollectionsPageSize, state.PageSize.ToString()), _cts.Token);
+ await Mediator.Send(new SaveConfigElementByKey(ConfigElementKey.MultiCollectionsPageSize, state.PageSize.ToString()), _cts.Token);
- PagedMultiCollectionsViewModel data = await _mediator.Send(new GetPagedMultiCollections(state.Page, state.PageSize), _cts.Token);
+ PagedMultiCollectionsViewModel data = await Mediator.Send(new GetPagedMultiCollections(state.Page, state.PageSize), _cts.Token);
return new TableData { TotalItems = data.TotalCount, Items = data.Page };
}
private async Task> ServerReloadSmartCollections(TableState state)
{
- await _mediator.Send(new SaveConfigElementByKey(ConfigElementKey.SmartCollectionsPageSize, state.PageSize.ToString()), _cts.Token);
+ await Mediator.Send(new SaveConfigElementByKey(ConfigElementKey.SmartCollectionsPageSize, state.PageSize.ToString()), _cts.Token);
- PagedSmartCollectionsViewModel data = await _mediator.Send(new GetPagedSmartCollections(state.Page, state.PageSize), _cts.Token);
+ PagedSmartCollectionsViewModel data = await Mediator.Send(new GetPagedSmartCollections(state.Page, state.PageSize), _cts.Token);
return new TableData { TotalItems = data.TotalCount, Items = data.Page };
}
diff --git a/ErsatzTV/Pages/EpisodeList.razor b/ErsatzTV/Pages/EpisodeList.razor
index 92661f5ef..8e859f365 100644
--- a/ErsatzTV/Pages/EpisodeList.razor
+++ b/ErsatzTV/Pages/EpisodeList.razor
@@ -61,7 +61,7 @@
@@ -42,7 +42,7 @@
+ Href="@($"ffmpeg/{context.Id}")">
@@ -59,7 +59,7 @@
-
+
Add Profile
@@ -78,18 +78,18 @@
protected override async Task OnParametersSetAsync() => await LoadFFmpegProfilesAsync(_cts.Token);
private async Task LoadFFmpegProfilesAsync(CancellationToken cancellationToken) =>
- _ffmpegProfiles = await _mediator.Send(new GetAllFFmpegProfiles(), cancellationToken);
+ _ffmpegProfiles = await Mediator.Send(new GetAllFFmpegProfiles(), cancellationToken);
private async Task DeleteProfileAsync(FFmpegProfileViewModel ffmpegProfile)
{
var parameters = new DialogParameters { { "EntityType", "ffmpeg profile" }, { "EntityName", ffmpegProfile.Name } };
var options = new DialogOptions { CloseButton = true, MaxWidth = MaxWidth.ExtraSmall };
- IDialogReference dialog = await _dialog.ShowAsync("Delete FFmpeg Profile", parameters, options);
+ IDialogReference dialog = await Dialog.ShowAsync("Delete FFmpeg Profile", parameters, options);
DialogResult result = await dialog.Result;
if (!result.Canceled)
{
- await _mediator.Send(new DeleteFFmpegProfile(ffmpegProfile.Id), _cts.Token);
+ await Mediator.Send(new DeleteFFmpegProfile(ffmpegProfile.Id), _cts.Token);
await LoadFFmpegProfilesAsync(_cts.Token);
}
}
@@ -99,11 +99,11 @@
var parameters = new DialogParameters { { "FFmpegProfileId", ffmpegProfile.Id } };
var options = new DialogOptions { CloseButton = true, MaxWidth = MaxWidth.ExtraSmall };
- IDialogReference dialog = await _dialog.ShowAsync("Copy FFmpeg Profile", parameters, options);
+ IDialogReference dialog = await Dialog.ShowAsync("Copy FFmpeg Profile", parameters, options);
DialogResult dialogResult = await dialog.Result;
if (!dialogResult.Canceled && dialogResult.Data is FFmpegProfileViewModel data)
{
- _navigationManager.NavigateTo($"ffmpeg/{data.Id}");
+ NavigationManager.NavigateTo($"ffmpeg/{data.Id}");
}
}
diff --git a/ErsatzTV/Pages/FFmpegEditor.razor b/ErsatzTV/Pages/FFmpegEditor.razor
index 3342c57b4..4573b1347 100644
--- a/ErsatzTV/Pages/FFmpegEditor.razor
+++ b/ErsatzTV/Pages/FFmpegEditor.razor
@@ -9,11 +9,11 @@
@using ErsatzTV.FFmpeg.Format
@using ErsatzTV.FFmpeg.Preset
@implements IDisposable
-@inject NavigationManager _navigationManager
-@inject ILogger _logger
-@inject ISnackbar _snackbar
-@inject IMediator _mediator
-@inject IMemoryCache _memoryCache
+@inject NavigationManager NavigationManager
+@inject ILogger Logger
+@inject ISnackbar Snackbar
+@inject IMediator Mediator
+@inject IMemoryCache MemoryCache
@inject PersistentComponentState ApplicationState
@@ -137,10 +137,10 @@
}
-
+
-
+
@@ -216,7 +216,7 @@
{
if (!ApplicationState.TryTakeFromJson("_resolutions", out List restoredResolutions))
{
- _resolutions = await _mediator.Send(new GetAllResolutions(), _cts.Token);
+ _resolutions = await Mediator.Send(new GetAllResolutions(), _cts.Token);
}
else
{
@@ -225,7 +225,7 @@
if (!ApplicationState.TryTakeFromJson("_hardwareAccelerationKinds", out List restoredHardwareAccelerationKinds))
{
- _hardwareAccelerationKinds = await _mediator.Send(new GetSupportedHardwareAccelerationKinds(), _cts.Token);
+ _hardwareAccelerationKinds = await Mediator.Send(new GetSupportedHardwareAccelerationKinds(), _cts.Token);
}
else
{
@@ -236,7 +236,7 @@
{
if (!ApplicationState.TryTakeFromJson("_model", out FFmpegProfileEditViewModel restoredProfile))
{
- Option maybeProfile = await _mediator.Send(new GetFFmpegProfileById(Id), _cts.Token);
+ Option maybeProfile = await Mediator.Send(new GetFFmpegProfileById(Id), _cts.Token);
foreach (FFmpegProfileViewModel profile in maybeProfile)
{
_model = new FFmpegProfileEditViewModel(profile);
@@ -244,7 +244,7 @@
if (maybeProfile.IsNone)
{
- _navigationManager.NavigateTo("404");
+ NavigationManager.NavigateTo("404");
}
}
else
@@ -254,7 +254,7 @@
}
else
{
- _model = new FFmpegProfileEditViewModel(await _mediator.Send(new NewFFmpegProfile(), _cts.Token));
+ _model = new FFmpegProfileEditViewModel(await Mediator.Send(new NewFFmpegProfile(), _cts.Token));
}
if (!_hardwareAccelerationKinds.Contains(_model.HardwareAcceleration))
@@ -265,9 +265,9 @@
_editContext = new EditContext(_model);
_messageStore = new ValidationMessageStore(_editContext);
- if (!_memoryCache.TryGetValue("ffmpeg.render_devices", out List vaapiDevices))
+ if (!MemoryCache.TryGetValue("ffmpeg.render_devices", out List vaapiDevices))
{
- vaapiDevices = new List { "/dev/dri/renderD128" };
+ vaapiDevices = ["/dev/dri/renderD128"];
}
_vaapiDevices = vaapiDevices.OrderBy(s => s).ToList();
@@ -289,15 +289,15 @@
_messageStore.Clear();
if (_editContext.Validate())
{
- Seq errorMessage = IsEdit ? (await _mediator.Send(_model.ToUpdate(), _cts.Token)).LeftToSeq() : (await _mediator.Send(_model.ToCreate(), _cts.Token)).LeftToSeq();
+ Seq errorMessage = IsEdit ? (await Mediator.Send(_model.ToUpdate(), _cts.Token)).LeftToSeq() : (await Mediator.Send(_model.ToCreate(), _cts.Token)).LeftToSeq();
errorMessage.HeadOrNone().Match(
error =>
{
- _snackbar.Add("Unexpected error saving ffmpeg profile");
- _logger.LogError("Unexpected error saving ffmpeg profile: {Error}", error.Value);
+ Snackbar.Add("Unexpected error saving ffmpeg profile");
+ Logger.LogError("Unexpected error saving ffmpeg profile: {Error}", error.Value);
},
- () => _navigationManager.NavigateTo("/ffmpeg"));
+ () => NavigationManager.NavigateTo("/ffmpeg"));
}
}
diff --git a/ErsatzTV/Pages/FillerPresetEditor.razor b/ErsatzTV/Pages/FillerPresetEditor.razor
index a9fbcd8e1..ba375b5e7 100644
--- a/ErsatzTV/Pages/FillerPresetEditor.razor
+++ b/ErsatzTV/Pages/FillerPresetEditor.razor
@@ -44,7 +44,7 @@
15 (:00, :15, :30, :45)
30 (:00, :30)
-
+
@foreach (ProgramScheduleItemCollectionType collectionType in Enum.GetValues())
{
diff --git a/ErsatzTV/Pages/FillerPresets.razor b/ErsatzTV/Pages/FillerPresets.razor
index b1dcf695a..6db9ca50d 100644
--- a/ErsatzTV/Pages/FillerPresets.razor
+++ b/ErsatzTV/Pages/FillerPresets.razor
@@ -8,7 +8,7 @@
-
+
Add Filler Preset
@@ -50,7 +50,7 @@
+ Href="@($"media/filler/presets/{context.Id}/edit")">
diff --git a/ErsatzTV/Pages/ImageBrowser.razor b/ErsatzTV/Pages/ImageBrowser.razor
index 6dc209477..165b16095 100644
--- a/ErsatzTV/Pages/ImageBrowser.razor
+++ b/ErsatzTV/Pages/ImageBrowser.razor
@@ -31,7 +31,7 @@
{
+ Href="@($"search?query={query}")"/>
}
}
diff --git a/ErsatzTV/Pages/ImageList.razor b/ErsatzTV/Pages/ImageList.razor
index 7eafed5cf..9be93a22b 100644
--- a/ErsatzTV/Pages/ImageList.razor
+++ b/ErsatzTV/Pages/ImageList.razor
@@ -60,7 +60,7 @@
+ Href="@($"search?query=library_id%3a{context.Id}")">
diff --git a/ErsatzTV/Pages/LocalLibraries.razor b/ErsatzTV/Pages/LocalLibraries.razor
index 02ace9130..5ee59a17a 100644
--- a/ErsatzTV/Pages/LocalLibraries.razor
+++ b/ErsatzTV/Pages/LocalLibraries.razor
@@ -32,7 +32,7 @@
+ Href="@($"media/sources/local/{context.Id}/edit")">
@@ -45,7 +45,7 @@
-
+
Add Local Library
diff --git a/ErsatzTV/Pages/Movie.razor b/ErsatzTV/Pages/Movie.razor
index abc67553f..fd0dc8f89 100644
--- a/ErsatzTV/Pages/Movie.razor
+++ b/ErsatzTV/Pages/Movie.razor
@@ -219,7 +219,7 @@
@foreach (ActorCardViewModel actor in _movie.Actors)
{
}
diff --git a/ErsatzTV/Pages/MovieList.razor b/ErsatzTV/Pages/MovieList.razor
index cb4fbcdfd..3597aefe1 100644
--- a/ErsatzTV/Pages/MovieList.razor
+++ b/ErsatzTV/Pages/MovieList.razor
@@ -62,7 +62,7 @@
-
+
@if (context.ScheduleAsGroup)
diff --git a/ErsatzTV/Pages/MusicVideoList.razor b/ErsatzTV/Pages/MusicVideoList.razor
index d7c539a17..a8a059833 100644
--- a/ErsatzTV/Pages/MusicVideoList.razor
+++ b/ErsatzTV/Pages/MusicVideoList.razor
@@ -61,7 +61,7 @@
+ Value="@(_selectedItem.DaysOfWeek.Contains(DayOfWeek.Monday))"
+ ValueChanged="@((bool c) => DayOfWeekChanged(DayOfWeek.Monday, c))"/>
+ Value="@(_selectedItem.DaysOfWeek.Contains(DayOfWeek.Tuesday))"
+ ValueChanged="@((bool c) => DayOfWeekChanged(DayOfWeek.Tuesday, c))"/>
+ Value="@(_selectedItem.DaysOfWeek.Contains(DayOfWeek.Wednesday))"
+ ValueChanged="@((bool c) => DayOfWeekChanged(DayOfWeek.Wednesday, c))"/>
+ Value="@(_selectedItem.DaysOfWeek.Contains(DayOfWeek.Thursday))"
+ ValueChanged="@((bool c) => DayOfWeekChanged(DayOfWeek.Thursday, c))"/>
+ Value="@(_selectedItem.DaysOfWeek.Contains(DayOfWeek.Friday))"
+ ValueChanged="@((bool c) => DayOfWeekChanged(DayOfWeek.Friday, c))"/>
+ Value="@(_selectedItem.DaysOfWeek.Contains(DayOfWeek.Saturday))"
+ ValueChanged="@((bool c) => DayOfWeekChanged(DayOfWeek.Saturday, c))"/>
+ Value="@(_selectedItem.DaysOfWeek.Contains(DayOfWeek.Sunday))"
+ ValueChanged="@((bool c) => DayOfWeekChanged(DayOfWeek.Sunday, c))"/>
@@ -161,8 +161,8 @@
{
+ Value="@(_selectedItem.DaysOfMonth.Contains(day))"
+ ValueChanged="@((bool c) => DayOfMonthChanged(day, c))"/>
}
@@ -182,15 +182,15 @@
+ Value="@(_selectedItem.MonthsOfYear.Contains(1))"
+ ValueChanged="@((bool c) => MonthOfYearChanged(1, c))"/>
@foreach (int month in Enumerable.Range(2, 11))
{
+ Value="@(_selectedItem.MonthsOfYear.Contains(month))"
+ ValueChanged="@((bool c) => MonthOfYearChanged(month, c))"/>
}
diff --git a/ErsatzTV/Pages/PlayoutTemplatesEditor.razor b/ErsatzTV/Pages/PlayoutTemplatesEditor.razor
index 01b18501e..a3523d9e9 100644
--- a/ErsatzTV/Pages/PlayoutTemplatesEditor.razor
+++ b/ErsatzTV/Pages/PlayoutTemplatesEditor.razor
@@ -176,38 +176,38 @@
+ Value="@(_selectedItem.DaysOfWeek.Contains(DayOfWeek.Monday))"
+ ValueChanged="@((bool c) => DayOfWeekChanged(DayOfWeek.Monday, c))"/>
+ Value="@(_selectedItem.DaysOfWeek.Contains(DayOfWeek.Tuesday))"
+ ValueChanged="@((bool c) => DayOfWeekChanged(DayOfWeek.Tuesday, c))"/>
+ Value="@(_selectedItem.DaysOfWeek.Contains(DayOfWeek.Wednesday))"
+ ValueChanged="@((bool c) => DayOfWeekChanged(DayOfWeek.Wednesday, c))"/>
+ Value="@(_selectedItem.DaysOfWeek.Contains(DayOfWeek.Thursday))"
+ ValueChanged="@((bool c) => DayOfWeekChanged(DayOfWeek.Thursday, c))"/>
+ Value="@(_selectedItem.DaysOfWeek.Contains(DayOfWeek.Friday))"
+ ValueChanged="@((bool c) => DayOfWeekChanged(DayOfWeek.Friday, c))"/>
+ Value="@(_selectedItem.DaysOfWeek.Contains(DayOfWeek.Saturday))"
+ ValueChanged="@((bool c) => DayOfWeekChanged(DayOfWeek.Saturday, c))"/>
+ Value="@(_selectedItem.DaysOfWeek.Contains(DayOfWeek.Sunday))"
+ ValueChanged="@((bool c) => DayOfWeekChanged(DayOfWeek.Sunday, c))"/>
@@ -234,8 +234,8 @@
{
+ Value="@(_selectedItem.DaysOfMonth.Contains(day))"
+ ValueChanged="@((bool c) => DayOfMonthChanged(day, c))"/>
}
@@ -255,15 +255,15 @@
+ Value="@(_selectedItem.MonthsOfYear.Contains(1))"
+ ValueChanged="@((bool c) => MonthOfYearChanged(1, c))"/>
@foreach (int month in Enumerable.Range(2, 11))
{
+ Value="@(_selectedItem.MonthsOfYear.Contains(month))"
+ ValueChanged="@((bool c) => MonthOfYearChanged(month, c))"/>
}
diff --git a/ErsatzTV/Pages/Playouts.razor b/ErsatzTV/Pages/Playouts.razor
index 238090c35..fbb1e27fb 100644
--- a/ErsatzTV/Pages/Playouts.razor
+++ b/ErsatzTV/Pages/Playouts.razor
@@ -1,6 +1,5 @@
@page "/playouts"
@using ErsatzTV.Application.Playouts
-@using ErsatzTV.Application.Scheduling
@using ErsatzTV.Application.Configuration
@using ErsatzTV.Core.Scheduling
@implements IDisposable
@@ -11,16 +10,16 @@
-
+
Add Playout
-
+
Add Block Playout
-
+
Add External Json Playout
@@ -85,7 +84,7 @@
+ Href="@($"playouts/{context.PlayoutId}/alternate-schedules")">
@@ -117,7 +116,7 @@
+ Href="@($"playouts/block/{context.PlayoutId}")">
@@ -152,7 +151,7 @@
@ref="_detailTable">
Playout Detail
-
+
Start
@@ -287,32 +286,6 @@
}
}
- private async Task EraseItems(PlayoutNameViewModel playout)
- {
- if (playout.PlayoutType is ProgramSchedulePlayoutType.Block)
- {
- await Mediator.Send(new EraseBlockPlayoutItems(playout.PlayoutId), _cts.Token);
- }
-
- if (_selectedPlayoutId == playout.PlayoutId)
- {
- await PlayoutSelected(playout);
- }
- }
-
- private async Task EraseHistory(PlayoutNameViewModel playout)
- {
- if (playout.PlayoutType is ProgramSchedulePlayoutType.Block)
- {
- await Mediator.Send(new EraseBlockPlayoutHistory(playout.PlayoutId), _cts.Token);
- }
-
- if (_selectedPlayoutId == playout.PlayoutId)
- {
- await PlayoutSelected(playout);
- }
- }
-
private async Task ScheduleReset(PlayoutNameViewModel playout)
{
var parameters = new DialogParameters
diff --git a/ErsatzTV/Pages/PlexMediaSources.razor b/ErsatzTV/Pages/PlexMediaSources.razor
index 27e190478..32b828e8d 100644
--- a/ErsatzTV/Pages/PlexMediaSources.razor
+++ b/ErsatzTV/Pages/PlexMediaSources.razor
@@ -39,12 +39,12 @@
+ Href="@($"media/sources/plex/{context.Id}/libraries")">
+ Href="@($"media/sources/plex/{context.Id}/paths")">
diff --git a/ErsatzTV/Pages/ScheduleEditor.razor b/ErsatzTV/Pages/ScheduleEditor.razor
index afa0dec40..042190ac4 100644
--- a/ErsatzTV/Pages/ScheduleEditor.razor
+++ b/ErsatzTV/Pages/ScheduleEditor.razor
@@ -2,10 +2,10 @@
@page "/schedules/add"
@using ErsatzTV.Application.ProgramSchedules
@implements IDisposable
-@inject NavigationManager _navigationManager
-@inject ILogger _logger
-@inject ISnackbar _snackbar
-@inject IMediator _mediator
+@inject NavigationManager NavigationManager
+@inject ILogger Logger
+@inject ISnackbar Snackbar
+@inject IMediator Mediator
@@ -19,14 +19,14 @@
@@ -34,13 +34,13 @@
@@ -74,7 +74,7 @@
{
if (IsEdit)
{
- Option maybeProgramSchedule = await _mediator.Send(new GetProgramScheduleById(Id), _cts.Token);
+ Option maybeProgramSchedule = await Mediator.Send(new GetProgramScheduleById(Id), _cts.Token);
maybeProgramSchedule.Match(
viewModel =>
{
@@ -85,7 +85,7 @@
_model.TreatCollectionsAsShows = viewModel.TreatCollectionsAsShows;
_model.RandomStartPoint = viewModel.RandomStartPoint;
},
- () => _navigationManager.NavigateTo("404"));
+ () => NavigationManager.NavigateTo("404"));
}
else
{
@@ -107,19 +107,19 @@
if (_editContext.Validate())
{
Either result = IsEdit
- ? await _mediator.Send(_model.ToUpdate(), _cts.Token).MapT(r => r as EntityIdResult)
- : await _mediator.Send(_model.ToCreate(), _cts.Token).MapT(r => r as EntityIdResult);
+ ? await Mediator.Send(_model.ToUpdate(), _cts.Token).MapT(r => r as EntityIdResult)
+ : await Mediator.Send(_model.ToCreate(), _cts.Token).MapT(r => r as EntityIdResult);
result.Match(
programSchedule =>
{
string destination = IsEdit ? "/schedules" : $"/schedules/{programSchedule.Id}/items";
- _navigationManager.NavigateTo(destination);
+ NavigationManager.NavigateTo(destination);
},
error =>
{
- _snackbar.Add(error.Value, Severity.Error);
- _logger.LogError("Unexpected error saving schedule: {Error}", error.Value);
+ Snackbar.Add(error.Value, Severity.Error);
+ Logger.LogError("Unexpected error saving schedule: {Error}", error.Value);
});
}
}
diff --git a/ErsatzTV/Pages/Schedules.razor b/ErsatzTV/Pages/Schedules.razor
index 0b6d8770d..c99ff9976 100644
--- a/ErsatzTV/Pages/Schedules.razor
+++ b/ErsatzTV/Pages/Schedules.razor
@@ -35,12 +35,12 @@
+ Href="@($"schedules/{context.Id}")">
+ Href="@($"schedules/{context.Id}/items")">
@@ -60,7 +60,7 @@
-
+
Add Schedule
diff --git a/ErsatzTV/Pages/Search.razor b/ErsatzTV/Pages/Search.razor
index 392c82173..3279eeeee 100644
--- a/ErsatzTV/Pages/Search.razor
+++ b/ErsatzTV/Pages/Search.razor
@@ -134,7 +134,7 @@
@foreach (MovieCardViewModel card in _movies.Cards.OrderBy(m => m.SortTitle))
{
s.SortTitle))
{
s.SortTitle))
{
s.SortTitle))
{
s.SortTitle))
{
s.SortTitle))
{
s.SortTitle))
{
s.SortTitle))
{
+ @bind-Value="@_ffmpegSettings.UseEmbeddedSubtitles"/>
+ @bind-Value="@_ffmpegSettings.SaveReports"/>
diff --git a/ErsatzTV/Pages/SongList.razor b/ErsatzTV/Pages/SongList.razor
index d3ddba609..a2f16ebc5 100644
--- a/ErsatzTV/Pages/SongList.razor
+++ b/ErsatzTV/Pages/SongList.razor
@@ -61,7 +61,7 @@
}
@@ -164,7 +164,7 @@
@foreach (ActorCardViewModel actor in _show.Actors)
{
}
diff --git a/ErsatzTV/Pages/TelevisionSeasonSearchResults.razor b/ErsatzTV/Pages/TelevisionSeasonSearchResults.razor
index ec8f8340b..3e289ee65 100644
--- a/ErsatzTV/Pages/TelevisionSeasonSearchResults.razor
+++ b/ErsatzTV/Pages/TelevisionSeasonSearchResults.razor
@@ -54,7 +54,7 @@
+ Href="@($"search?query=trakt_list%3a{context.TraktId}")">
diff --git a/ErsatzTV/Pages/Trash.razor b/ErsatzTV/Pages/Trash.razor
index 446430f13..f5e452f85 100644
--- a/ErsatzTV/Pages/Trash.razor
+++ b/ErsatzTV/Pages/Trash.razor
@@ -111,7 +111,7 @@
@foreach (MovieCardViewModel card in _movies.Cards.OrderBy(m => m.SortTitle))
{
s.SortTitle))
{
s.SortTitle))
{
s.SortTitle))
{
s.SortTitle))
{
s.SortTitle))
{
s.SortTitle))
{
s.SortTitle))
{
Right Middle
diff --git a/ErsatzTV/Pages/Watermarks.razor b/ErsatzTV/Pages/Watermarks.razor
index 39304af38..98b96412e 100644
--- a/ErsatzTV/Pages/Watermarks.razor
+++ b/ErsatzTV/Pages/Watermarks.razor
@@ -48,7 +48,7 @@
+ Href="@($"watermarks/{context.Id}")">
@@ -65,7 +65,7 @@
-
+
Add Watermark
diff --git a/ErsatzTV/Services/RunOnce/PlatformSettingsService.cs b/ErsatzTV/Services/RunOnce/PlatformSettingsService.cs
index 242ed0e4f..272c9ca76 100644
--- a/ErsatzTV/Services/RunOnce/PlatformSettingsService.cs
+++ b/ErsatzTV/Services/RunOnce/PlatformSettingsService.cs
@@ -5,24 +5,13 @@ using Microsoft.Extensions.Caching.Memory;
namespace ErsatzTV.Services.RunOnce;
-public class PlatformSettingsService : BackgroundService
+public class PlatformSettingsService(IServiceScopeFactory serviceScopeFactory) : BackgroundService
{
- private readonly ILogger _logger;
- private readonly IServiceScopeFactory _serviceScopeFactory;
-
- public PlatformSettingsService(
- IServiceScopeFactory serviceScopeFactory,
- ILogger logger)
- {
- _serviceScopeFactory = serviceScopeFactory;
- _logger = logger;
- }
-
protected override async Task ExecuteAsync(CancellationToken stoppingToken)
{
await Task.Yield();
- using IServiceScope scope = _serviceScopeFactory.CreateScope();
+ using IServiceScope scope = serviceScopeFactory.CreateScope();
IRuntimeInfo runtimeInfo = scope.ServiceProvider.GetRequiredService();
if (runtimeInfo != null && runtimeInfo.IsOSPlatform(OSPlatform.Linux) &&
Directory.Exists("/dev/dri"))
@@ -31,7 +20,9 @@ public class PlatformSettingsService : BackgroundService
IMemoryCache memoryCache = scope.ServiceProvider.GetRequiredService();
var devices = localFileSystem.ListFiles("/dev/dri")
- .Filter(s => s.StartsWith("/dev/dri/render", StringComparison.OrdinalIgnoreCase))
+ .Filter(
+ s => s.StartsWith("/dev/dri/render", StringComparison.OrdinalIgnoreCase)
+ || s.StartsWith("/dev/dri/card", StringComparison.OrdinalIgnoreCase))
.ToList();
memoryCache.Set("ffmpeg.render_devices", devices);
diff --git a/ErsatzTV/Shared/MainLayout.razor b/ErsatzTV/Shared/MainLayout.razor
index 6a2750c43..111656cb9 100644
--- a/ErsatzTV/Shared/MainLayout.razor
+++ b/ErsatzTV/Shared/MainLayout.razor
@@ -9,7 +9,7 @@
@inject SystemStartup SystemStartup
@inject ISearchTargets SearchTargets;
-
+
@@ -77,13 +77,13 @@
}
@* API *@
-
+
-
+
-
+
}