From 0a56d8ffc895b01916286987da3b73d61ef263c0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tommy=20=C3=96man?= Date: Fri, 19 Sep 2025 08:54:30 +0200 Subject: [PATCH] =?UTF-8?q?Nu=20finns=20registrering=20av=20po=C3=A4ng=20o?= =?UTF-8?q?ch=20struktur=20f=C3=B6r=20att=20l=C3=A4gga=20ut=20p=C3=A5=20et?= =?UTF-8?q?t=20teststadium?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../HelperEntities/PlayerColumn.cs | 32 ++++++++ .../ViewModelClasses/RoundRunningViewModel.cs | 57 +++++++++++++ .../RoundRunningViewModelCommands.cs | 17 ++++ GreadyPoang/ViewHelpers/DigitsOnlyBehavior.cs | 38 +++++++++ GreadyPoang/Views/RoundRunningView.xaml | 82 ++++++++++++++++--- GreadyPoang/Views/RoundRunningView.xaml.cs | 44 +++++++++- GreadyPoang/ViewsPartial/HeaderView.xaml | 2 +- 7 files changed, 258 insertions(+), 14 deletions(-) create mode 100644 GreadyPoang.EntityLayer/HelperEntities/PlayerColumn.cs create mode 100644 GreadyPoang/ViewHelpers/DigitsOnlyBehavior.cs diff --git a/GreadyPoang.EntityLayer/HelperEntities/PlayerColumn.cs b/GreadyPoang.EntityLayer/HelperEntities/PlayerColumn.cs new file mode 100644 index 0000000..0365a40 --- /dev/null +++ b/GreadyPoang.EntityLayer/HelperEntities/PlayerColumn.cs @@ -0,0 +1,32 @@ +using Common.Library; + +namespace GreadyPoang.EntityLayer; + +public class PlayerColumn : EntityBase +{ + public PlayerColumn() + { + _playerName = string.Empty; + _values = new List(); + } + private string _playerName; + private List _values; + public string PlayerName + { + get { return _playerName; } + set + { + _playerName = value; + RaisePropertyChanged(nameof(PlayerName)); + } + } + public List Values + { + get { return _values; } + set + { + _values = value; + RaisePropertyChanged(nameof(Values)); + } + } +} diff --git a/GreadyPoang.ViewModelLayer/ViewModelClasses/RoundRunningViewModel.cs b/GreadyPoang.ViewModelLayer/ViewModelClasses/RoundRunningViewModel.cs index 0549f71..d9fe3f5 100644 --- a/GreadyPoang.ViewModelLayer/ViewModelClasses/RoundRunningViewModel.cs +++ b/GreadyPoang.ViewModelLayer/ViewModelClasses/RoundRunningViewModel.cs @@ -29,6 +29,7 @@ public class RoundRunningViewModel : ViewModelBase _combined = combined; _objectMessage = objectMessage; _roundElements = new ObservableCollection(); + _builderObject = new(); } private readonly IRepository? _roundsRepo; @@ -40,6 +41,7 @@ public class RoundRunningViewModel : ViewModelBase private ObservableCollection _GameRoundList = new(); private ObservableCollection _ParticipantList = new(); + private Collection _playerColumns; public ObservableCollection RoundElements { @@ -51,9 +53,35 @@ public class RoundRunningViewModel : ViewModelBase } } + public Collection PlayerColumns + { + get { return _playerColumns; } + set + { + _playerColumns = value; + RaisePropertyChanged(nameof(PlayerColumns)); + } + } + + + + private RoundBuilderElement _builderObject; + + public RoundBuilderElement BuilderObject + { + get { return _builderObject; } + set + { + _builderObject = value; + RaisePropertyChanged(nameof(BuilderObject)); + } + } + public ObservableCollection Get() { + BuilderObject.ParticipantName = "Kalle Default"; + if (_objectMessage.CurrentGroup != null) { Debug.WriteLine($"Chosen round: {_objectMessage.CurrentGroup.GameRoundId}"); @@ -65,9 +93,38 @@ public class RoundRunningViewModel : ViewModelBase { _roundElements.Add(item); } + FillupResultTable(_objectMessage.CurrentGroup.Elements); } return RoundElements; } + + private void FillupResultTable(List elements) + { + Random slumper = new Random(); + if (_playerColumns != null) + { + _playerColumns.Clear(); + } + else + { + _playerColumns = new Collection(); + } + foreach (var element in elements) + { + var player = new PlayerColumn + { + PlayerName = element.ParticipantName + }; + + for (int i = 0; i < slumper.Next(6); i++) + { + player.Values.Add(slumper.Next(1, 10).ToString()); + } + + _playerColumns.Add(player); + } + } + } diff --git a/GreadyPoang/CommandClasses/RoundRunningViewModelCommands.cs b/GreadyPoang/CommandClasses/RoundRunningViewModelCommands.cs index 6f713e1..1dee87b 100644 --- a/GreadyPoang/CommandClasses/RoundRunningViewModelCommands.cs +++ b/GreadyPoang/CommandClasses/RoundRunningViewModelCommands.cs @@ -33,6 +33,23 @@ public class RoundRunningViewModelCommands : RoundRunningViewModel public ICommand RensaCommand { get; private set; } public ICommand ElementTappedCommand { get; private set; } public ICommand ParticipantTappedCommand { get; private set; } + public ICommand StoreAndHandlePontsCommand { get; private set; } + #endregion + public override void Init() + { + base.Init(); + StoreAndHandlePontsCommand = new Command(async () => StoreAndHandle()); + //EditCommand = new Command(async (id) => await EditAsync(id), (id) => id > 0); + //RensaCommand = new Command(async () => RensaAsync()); + //ParticipantTappedCommand = new Command(async (selectedParticipant) => SelectNewlyAddedParticipant(selectedParticipant)); + //ElementTappedCommand = new Command((selectedElement) => RoundSelected(selectedElement)); + + } + + private void StoreAndHandle() + { + throw new NotImplementedException(); + } } diff --git a/GreadyPoang/ViewHelpers/DigitsOnlyBehavior.cs b/GreadyPoang/ViewHelpers/DigitsOnlyBehavior.cs new file mode 100644 index 0000000..6ad6613 --- /dev/null +++ b/GreadyPoang/ViewHelpers/DigitsOnlyBehavior.cs @@ -0,0 +1,38 @@ +using System.Text.RegularExpressions; + +namespace GreadyPoang.ViewHelpers; + +public class DigitsOnlyBehavior : Behavior +{ + protected override void OnAttachedTo(Entry entry) + { + entry.TextChanged += OnTextChanged; + base.OnAttachedTo(entry); + } + + protected override void OnDetachingFrom(Entry entry) + { + entry.TextChanged -= OnTextChanged; + base.OnDetachingFrom(entry); + } + + private void OnTextChanged(object sender, TextChangedEventArgs e) + { + var entry = sender as Entry; + if (entry == null) return; + + // Tillåt endast siffror (0–9) + if (!Regex.IsMatch(e.NewTextValue, @"^\d*$")) + { + entry.Text = e.OldTextValue; // Återställ till tidigare giltigt värde + } + /* + * Vill du tillåta decimaler? Ändra regex till @"^\d*\.?\d*$" + Vill du tillåta negativa tal? Använd @"^-?\d*$" + Vill du visa en varning när användaren skriver fel? + Lägg till en BindableProperty för IsValid och bind den till UI. + * + */ + + } +} diff --git a/GreadyPoang/Views/RoundRunningView.xaml b/GreadyPoang/Views/RoundRunningView.xaml index 7eda743..c8154bd 100644 --- a/GreadyPoang/Views/RoundRunningView.xaml +++ b/GreadyPoang/Views/RoundRunningView.xaml @@ -4,6 +4,7 @@ xmlns:partial="clr-namespace:GreadyPoang.ViewsPartial" x:Class="GreadyPoang.Views.RoundRunningView" xmlns:vm ="clr-namespace:GreadyPoang.CommandClasses" + xmlns:behaviors="clr-namespace:GreadyPoang.ViewHelpers" xmlns:local="clr-namespace:GreadyPoang.EntityLayer;assembly=GreadyPoang.EntityLayer" xmlns:model="clr-namespace:GreadyPoang.EntityLayer;assembly=GreadyPoang.EntityLayer" x:DataType="vm:RoundRunningViewModelCommands" @@ -12,6 +13,9 @@ + + + @@ -23,29 +27,83 @@ + Margin="2"> - + - - - + + + + + + + + + + + + + + + + + + + + + + + -