@page "/schedules" @using ErsatzTV.Application.ProgramSchedules @using ErsatzTV.Application.ProgramSchedules.Commands @using ErsatzTV.Application.ProgramSchedules.Queries @inject IDialogService _dialog @inject IMediator _mediator Schedules Name Collection Playback Order @context.Name @context.MediaCollectionPlaybackOrder
Add Schedule @if (_selectedScheduleItems != null) { @_selectedSchedule.Name Items Start Time Collection Playout Mode @(context.StartType == StartType.Fixed ? context.StartTime?.ToString(@"hh\:mm") ?? string.Empty : "Dynamic") @context.Name @context.PlayoutMode }
@code { private List _schedules; private List _selectedScheduleItems; private ProgramScheduleViewModel _selectedSchedule; protected override Task OnParametersSetAsync() => LoadSchedules(); private async Task ScheduleSelected(ProgramScheduleViewModel schedule) { _selectedSchedule = schedule; await _mediator.Send(new GetProgramScheduleItems(schedule.Id)) .IterT(results => _selectedScheduleItems = results.OrderBy(x => x.Name).ToList()); } private async Task DeleteSchedule(ProgramScheduleViewModel programSchedule) { var parameters = new DialogParameters { { "EntityType", "schedule" }, { "EntityName", programSchedule.Name } }; var options = new DialogOptions { CloseButton = true, MaxWidth = MaxWidth.ExtraSmall }; IDialogReference dialog = _dialog.Show("Delete Schedule", parameters, options); DialogResult result = await dialog.Result; if (!result.Cancelled) { await _mediator.Send(new DeleteProgramSchedule(programSchedule.Id)); await LoadSchedules(); } } private async Task LoadSchedules() => _schedules = await _mediator.Send(new GetAllProgramSchedules()).Map(list => list.OrderBy(vm => vm.Name).ToList()); }