diff --git a/KoogleApp/Components/Controls/DayListMenu.razor b/KoogleApp/Components/Controls/DayListMenu.razor index 2575dee..ee344a7 100644 --- a/KoogleApp/Components/Controls/DayListMenu.razor +++ b/KoogleApp/Components/Controls/DayListMenu.razor @@ -1,10 +1,12 @@ @using KoogleApp.Components.Dialogs @using KoogleApp.Store.DayFeature @using KoogleApp.Store.Game.ThrowPanel +@using KoogleApp.Store.Player @inherits FluxorComponent @inject IDispatcher Dispatcher @inject IState DayState +@inject IState PlayersState @inject IDialogService DialogService @if (DayState.Value.Status != DayStatus.Started) @@ -22,6 +24,7 @@ private async Task StartClick(MouseEventArgs obj) { + Dispatcher.Dispatch(new InitNewDayModelAction(PlayersState.Value.Players)); var parameters = new DialogParameters{ }; // parameters.Add(x => x.Record, Record); diff --git a/KoogleApp/Components/Controls/PlayerSelect.razor b/KoogleApp/Components/Controls/PlayerSelect.razor index a192d18..6c0eee1 100644 --- a/KoogleApp/Components/Controls/PlayerSelect.razor +++ b/KoogleApp/Components/Controls/PlayerSelect.razor @@ -1,18 +1,20 @@ @using KoogleApp.Data @using KoogleApp.Model +@using KoogleApp.Store.Player @inject SharedDataService SharedDataService +@inject IState PlayersState -@if (_players != null) +@if (PlayersState != null) { - - @foreach (var player in _players) + @foreach (var player in PlayersState.Value.Players) { - @player.Name + @player.Name } } @@ -20,19 +22,19 @@ @code { - private IEnumerable? _players; + // private IEnumerable? _players; - protected override async Task OnAfterRenderAsync(bool firstRender) - { - if (firstRender) - { - var data = await SharedDataService.GetAllPlayersAsync(); - _players = data.OrderBy(p => p.Name).ToList(); - StateHasChanged(); - } - } + // protected override async Task OnAfterRenderAsync(bool firstRender) + // { + // if (firstRender) + // { + // var data = await SharedDataService.GetAllPlayersAsync(); + // _players = data.OrderBy(p => p.Name).ToList(); + // StateHasChanged(); + // } + // } - Converter converter = new Converter + Converter converter = new Converter { SetFunc = value => value.Name, GetFunc = text => null, @@ -50,10 +52,10 @@ - private IEnumerable? _value; + private IEnumerable? _value; [Parameter] - public IEnumerable? SelectedValues + public IEnumerable? SelectedValues { get => _value; set @@ -65,5 +67,5 @@ } [Parameter] - public EventCallback?> SelectedValuesChanged { get; set; } + public EventCallback?> SelectedValuesChanged { get; set; } } diff --git a/KoogleApp/Model/DayModel.cs b/KoogleApp/Model/DayModel.cs index b68cb4e..b53b4df 100644 --- a/KoogleApp/Model/DayModel.cs +++ b/KoogleApp/Model/DayModel.cs @@ -1,4 +1,5 @@ using System.ComponentModel.DataAnnotations; +using KoogleApp.Store.Player; namespace KoogleApp.Model { @@ -9,6 +10,6 @@ namespace KoogleApp.Model [Display(Name = "Datum")] public DateTime? PostDate { get; set; } = DateTime.Today; - public IEnumerable? Players { get; set; } + public IEnumerable? Players { get; set; } } } diff --git a/KoogleApp/Store/DayFeature/Actions.cs b/KoogleApp/Store/DayFeature/Actions.cs index b954f8e..b8d22f6 100644 --- a/KoogleApp/Store/DayFeature/Actions.cs +++ b/KoogleApp/Store/DayFeature/Actions.cs @@ -1,4 +1,5 @@ using KoogleApp.Model; +using KoogleApp.Store.Player; namespace KoogleApp.Store.DayFeature { @@ -30,4 +31,6 @@ namespace KoogleApp.Store.DayFeature { public DayModel DayModel { get; } = dayModel; } + + public record InitNewDayModelAction(List Players); } diff --git a/KoogleApp/Store/DayFeature/Reducers.cs b/KoogleApp/Store/DayFeature/Reducers.cs index 9e10572..9f2c9a7 100644 --- a/KoogleApp/Store/DayFeature/Reducers.cs +++ b/KoogleApp/Store/DayFeature/Reducers.cs @@ -146,5 +146,24 @@ namespace KoogleApp.Store.DayFeature ErrorMessage = action.ErrorMessage }; } + + + [ReducerMethod] + public static DayModelState OnInitNewDayModelAction(DayModelState state, InitNewDayModelAction action) + { + return state with + { + Submitting = false, + ErrorMessage = "", + Submitted = false, + Model = new DayModel() + { + Players = action.Players.Where(p => p.PlayerStatus == PlayerStatus.Member).ToList(), + PostDate = DateTime.Today + } + }; + } + + } }