private Score AddPoint(EJoueurs joueur, Score score) { if (score.PointLevel == null) { score.PointLevel = new List <Dictionary <EJoueurs, int> >() { InitDict() }; score.PointLevel[currentPosition][joueur] += 1; } else if (score.PointLevel.Count() <= currentPosition) { score.PointLevel.Add(InitDict()); score.PointLevel[currentPosition][joueur] += 1; } else if (!score.PointLevel[currentPosition].ContainsKey(joueur)) { score.PointLevel[currentPosition].Add(joueur, 1); } else { score.PointLevel[currentPosition][joueur] += 1; } return(score); }
private Score RemiseAZeroManche(EJoueurs joueur, Score score) { foreach (EJoueurs joueurE in Enum.GetValues(typeof(EJoueurs))) { if (score.PointLevel[currentPosition].ContainsKey(joueurE)) { score.PointLevel[currentPosition][joueurE] = 0; } } return(score); }
private bool IsPointEcart(EJoueurs joueur, Score score) { bool isUnPointEcart = true; foreach (EJoueurs joueurE in Enum.GetValues(typeof(EJoueurs))) { if (joueurE != joueur && score.PointLevel[currentPosition][joueur] - score.PointLevel[currentPosition][joueurE] < POINT_ECART_MANCHE) { isUnPointEcart = false; } } return(isUnPointEcart); }
private Score CalculPoint(EJoueurs joueur, Score score) { score = AddPoint(joueur, score); int newPointJoueur = score.PointLevel[currentPosition][joueur]; int pointMaxManche = score.PointLevel[currentPosition].Max(p => p.Value); if (newPointJoueur >= POINT_PAR_MANCHE && newPointJoueur == pointMaxManche) { if (IsPointEcart(joueur, score)) { //score = AddSet(joueur, score); currentPosition++; } } return(score); }
private Score AddSet(EJoueurs joueur, Score score) { if (score.PointLevel.Count() < 2) { score.PointLevel.Add(InitDict()); score.PointLevel[1][joueur] += 1; } else if (!score.PointLevel[1].ContainsKey(joueur)) { score.PointLevel[1].Add(joueur, 1); } else { score.PointLevel[1][joueur] += 1; } return(score); }
public async Task <IActionResult> DeletePoint(long idMatch, EJoueurs joueur) { List <Error> errors = new List <Error>(); Account currentUser = await GetCurrentUserAsync(); var matchs = _context.Tournaments .SelectMany(t => t.Matches) .Where(t => t.Id == idMatch && t.Arbitre == currentUser) .Include(m => m.Score); if (matchs.Count() > 0) { Match match = matchs.Single(); if (match.Score != null && match.Score.Count() > 0) { Point lastPoint = match.Score.OrderByDescending(p => p.Order).Where(p => p.Joueur == joueur).FirstOrDefault(); match.Score.Remove(lastPoint); _context.SaveChanges(); Score score = new CalculPointPingPong().Calcul(match.Score); return(Ok(score)); } else { errors.Add(new Error() { Code = "NothingToDelete", Description = "impossible de supprimer un point" }); return(BadRequest(errors)); } } else { errors.Add(new Error() { Code = "MatchUnknowOrUnAuhthorize", Description = "Le match n'as pas été trouver ou vous n'avez pas acces au match" }); return(BadRequest(errors)); } }