Sparar poäng men visar inte
This commit is contained in:
@ -80,11 +80,11 @@ public class RoundRunningViewModel : ViewModelBase
|
||||
|
||||
public ObservableCollection<RoundBuilderElement> Get()
|
||||
{
|
||||
BuilderObject.ParticipantName = _objectMessage.CurrentGroup.Elements[0].ParticipantName;
|
||||
BuilderObject.GameRoundId = _objectMessage.CurrentGroup.GameRoundId;
|
||||
|
||||
|
||||
if (_objectMessage.CurrentGroup != null)
|
||||
{
|
||||
//CurrentGroup är satt från RoundStarting ViewModel
|
||||
Debug.WriteLine($"Chosen round: {_objectMessage.CurrentGroup.GameRoundId}");
|
||||
if (RoundElements.Count > 0)
|
||||
{
|
||||
@ -94,12 +94,65 @@ public class RoundRunningViewModel : ViewModelBase
|
||||
{
|
||||
_roundElements.Add(item);
|
||||
}
|
||||
|
||||
var nxt = nextPlayerElement();
|
||||
BuilderObject.ParticipantName = _objectMessage.CurrentGroup.Elements[nxt].ParticipantName;
|
||||
BuilderObject.GameRoundId = _objectMessage.CurrentGroup.GameRoundId;
|
||||
BuilderObject.ParticipantId = _objectMessage.CurrentGroup.Elements[nxt].ParticipantId;
|
||||
|
||||
var localElements = _combined.roundBuilderElementsTotalById(_objectMessage.CurrentGroup.GameRoundId);
|
||||
FillupResultTable(localElements);
|
||||
}
|
||||
return RoundElements;
|
||||
}
|
||||
|
||||
|
||||
public void StoreAndHandlePoints()
|
||||
{
|
||||
var regNr = RoundElements.Count > 0 ? RoundElements.Max(e => e.GameRoundRegNr) + 1 : 1;
|
||||
var points = BuilderObject.GameRegPoints;
|
||||
var newPoint = new GamePoint
|
||||
{
|
||||
ParticipantId = BuilderObject.ParticipantId,
|
||||
GameRoundId = BuilderObject.GameRoundId,
|
||||
GameDate = DateTime.Now,
|
||||
GameRoundRegNr = regNr,
|
||||
GameRegPoints = points
|
||||
};
|
||||
var pointId = _pointsRepo?.Save(newPoint).GetAwaiter().GetResult();
|
||||
|
||||
// Uppdatera listan med element
|
||||
var tmpElements = _combined.roundBuilderElementsDbById(BuilderObject.GameRoundId);
|
||||
RoundElements.Clear();
|
||||
foreach (var item in tmpElements)
|
||||
{
|
||||
RoundElements.Add(item);
|
||||
}
|
||||
// Uppdatera spelaren som skall spela nästa
|
||||
var nxt = nextPlayerElement();
|
||||
BuilderObject.ParticipantName = RoundElements[nxt].ParticipantName;
|
||||
BuilderObject.ParticipantId = RoundElements[nxt].ParticipantId;
|
||||
BuilderObject.GameRoundId = RoundElements[0].GameRoundId;
|
||||
|
||||
var localElements = _combined.roundBuilderElementsTotalById(BuilderObject.GameRoundId);
|
||||
FillupResultTable(localElements);
|
||||
|
||||
}
|
||||
|
||||
private int nextPlayerElement()
|
||||
{
|
||||
for (int i = 0; i < RoundElements.Count; i++)
|
||||
{
|
||||
if (RoundElements[i].GameRoundRegNr == -1 ||
|
||||
(i > 0 && (RoundElements[i - 1].GameRoundRegNr > RoundElements[i].GameRoundRegNr)) ||
|
||||
(i == 0 && RoundElements[i].GameRoundRegNr < RoundElements[RoundElements.Count - 1].GameRoundRegNr))
|
||||
return i;
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
|
||||
|
||||
|
||||
private void FillupResultTable(IEnumerable<RoundBuilderElement> elements)
|
||||
{
|
||||
if (_playerColumns != null)
|
||||
|
||||
Reference in New Issue
Block a user