private int GetDuelBalance(string userEmail, bool includeOnlyTodaysBalance = false) { var competitions = _duelRepository.GetWonDuelsByEmail(userEmail); if (includeOnlyTodaysBalance) { competitions = competitions.Where(x => x.StartTime.Date == DateTime.Today); } return(competitions.Sum(c => c.Prize)); }
public UserDuelStatisticsDto GetUserDuelStatistics() { if (User.Identity.IsAuthenticated) { var userEmail = User.FindFirst(ClaimTypes.Email).Value; return(new UserDuelStatisticsDto { Email = userEmail, TotalWins = _duelRepository.GetWonDuelsByEmail(userEmail).Count(), TotalLooses = _duelRepository.GetLostDuelsByEmail(userEmail).Count(), IsInDuel = UserHandler.IsPlayerInDuel(userEmail), ActivePlayers = UserHandler.WaitingPlayers.Count + UserHandler.ActiveDuels.Count * 2 }); } return(new UserDuelStatisticsDto()); }
public DuelDto CreateDuel(TaskDto task, PlayerDto firstPlayer, PlayerDto secondPlayer, int duration) { var duel = new DuelDto { Prize = task.Value, Players = new List <PlayerDto> { firstPlayer, secondPlayer }, Task = task }; duel.Players.ForEach(player => { player.TotalWins = _duelRepository.GetWonDuelsByEmail(player.Email).Count(); player.TotalLooses = _duelRepository.GetLostDuelsByEmail(player.Email).Count(); }); duel.Id = _duelRepository.CreateDuel(duel); duel.Duration = duration; return(duel); }