Beispiel #1
0
        private async Task MakeUserPicksAsync(long user, int week, int gamePickIndex, GameResult result)
        {
            var gamePicks = _mapper.Map <List <GamePick> >((await _gamePickService.GetByUserAndWeekAsync(user, week)).ToList());

            gamePicks[gamePickIndex].Pick = result;

            await _gamePickService.UpdateByUserAndWeekAsync(gamePicks);
        }
Beispiel #2
0
        public async Task <bool> DeleteGame(long id)
        {
            //Need to adjust user pick wagers for the week of this game
            var users = _userRepository.GetAll();
            var game  = await _gameRepository.GetById(id);

            // Ensure picks are created then update the wagers above the game deleted (shift down)
            foreach (var user in users)
            {
                var picks         = (await _gamePickService.GetByUserAndWeekAsync(user.Id, game.Week)).ToList();
                var wagerToDelete = picks.Find(p => p.GameId == id).Wager;
                var ordered       = picks.OrderBy(p => p.Wager);

                for (int index = wagerToDelete; index < ordered.Count(); index++)
                {
                    picks[index].Wager = index;
                }

                await _gamePickService.UpdateByUserAndWeekAsync(picks);
            }

            await _gameRepository.DeleteAsync(id);

            return(true);
        }
 public async Task <IEnumerable <GamePick> > GetByUserAndWeekAsync(long userId, int week)
 {
     return(await _gamePickService.GetByUserAndWeekAsync(userId, week));
 }
        public async Task GetByUser_ReturnsPicks()
        {
            InitializeDb();

            var user = await _userRepository.CreateAsync();

            await CreateGamesAsync(2, 5);

            foreach (var game in _games)
            {
                await CreateGamePick(game, user);
            }

            Assert.Equal(10, _gamePickService.GetByUser(user.Id).Count());
            Assert.Empty(await _gamePickService.GetByUserAndWeekAsync(user.Id + 1, 3));
        }