private void UpdateScore(Bet bet, int scorePlus) { var betslikethis = FinihedBets.Where(x => x.Bet.Game.Id == bet.Game.Id).ToList(); if (betslikethis.Count() > 1) { FinihedBets.Remove(betslikethis[1]); Score -= betslikethis[1].AchivedScore; } if (FinihedBets.Any(x => x.Bet.Id == bet.Id)) { var finihed = FinihedBets.Where(x => x.Bet.Id == bet.Id).ToList(); foreach (var finish in finihed) { Score -= finish.AchivedScore; FinihedBets.Remove(finish); } } Score += scorePlus; FinihedBets.Add(new FinishedBet(bet, scorePlus)); if (Bets.Contains(bet)) { Bets.Remove(bet); } }
public void RemoveBet(Bet bet) { if (FinihedBets.Any(x => x.Bet.Id == bet.Id)) { throw new Exception("Can not remove completed bet"); } if (Bets.Contains(bet)) { Bets.Remove(bet); } }
public void GameResultChangedEventHandler(Guid gameid) { var fbet = FinihedBets.FirstOrDefault(x => x.Bet.Game.Id == gameid); if (fbet != null) { UpdateScore(fbet.Bet, ScoreProvider.GetScore(fbet.Bet.Game.Result, fbet.Bet.Result)); } var bet = Bets.FirstOrDefault(x => x.Game.Id == gameid); if (bet != null) { UpdateScore(bet, ScoreProvider.GetScore(bet.Game.Result, bet.Result)); } }