Observable properties och RelayCommands införda

This commit is contained in:
2025-10-14 21:57:37 +02:00
parent b4d6c6d530
commit 21eb0d5498
17 changed files with 87 additions and 302 deletions

View File

@ -1,5 +1,6 @@
using Common.Library;
using CommunityToolkit.Mvvm.ComponentModel;
using CommunityToolkit.Mvvm.Input;
using GreadyPoang.DataLayer;
using GreadyPoang.EntityLayer;
using GreadyPoang.Services;
@ -39,6 +40,7 @@ public partial class RoundStartingViewModel : ObservableObject
private readonly ICombinedRepository _combined;
private readonly IObjectMessageService _objectMessage;
[ObservableProperty]
private Participant selectedItem;
partial void OnSelectedItemChanged(Participant value)
@ -108,6 +110,7 @@ public partial class RoundStartingViewModel : ObservableObject
}
#region Get Method
public ObservableCollection<RoundBuilderGroup> Get()
{
@ -167,7 +170,9 @@ public partial class RoundStartingViewModel : ObservableObject
return GameRoundObject;
}
public virtual bool Save()
[RelayCommand]
public async Task<bool> SaveAsync()
{
if (_roundsRepo == null || GameRoundObject == null)
{
@ -180,11 +185,13 @@ public partial class RoundStartingViewModel : ObservableObject
GameRoundObject = new GameRound();
RoundElements.Clear();
this.Get();
await Shell.Current.GoToAsync("..");
}
return tmp;
}
public void Rensa()
[RelayCommand]
private async Task RensaAsync()
{
foreach (var element in RoundElements)
{
@ -192,22 +199,31 @@ public partial class RoundStartingViewModel : ObservableObject
}
_roundsRepo?.DeleteById(GameRoundObject?.GameRoundId ?? 0);
RoundElements.Clear();
await Shell.Current.GoToAsync("..");
}
public void RoundSelected(RoundBuilderElement element)
[RelayCommand]
public async Task<bool> RoundSelected(RoundBuilderElement element)
{
bool goneOk = false;
var rbGroup = GameRoundList.FirstOrDefault(g => g.GameRoundId == element.GameRoundId);
Debug.WriteLine($"Du valde raden med Runda {element.GameRoundId} och spelare: {element.ParticipantName}");
if (rbGroup != null)
{
_objectMessage.CurrentGroup = rbGroup;
Shell.Current.GoToAsync("//RoundRunningView");
await Shell.Current.GoToAsync("//RoundRunningView");
goneOk = true;
}
return goneOk;
}
public void SelectNewlyAddedParticipant(RoundBuilderElement roundBuilder)
[RelayCommand]
public async Task<bool> SelectNewlyAddedParticipant(RoundBuilderElement roundBuilder)
{
bool goneOk = false;
Debug.WriteLine($"Du valde raden med Runda {roundBuilder.GameRoundId} och spelare: {roundBuilder.ParticipantName}");
goneOk = true;
return goneOk;
}
#endregion