Example #1
0
        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));
        }
Example #2
0
        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());
        }
Example #3
0
        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);
        }