Esempio n. 1
0
        public List <UserTopDTO> GetRelativeRanking(int atNumber, int quantity)
        {
            Logger.Trace("GameBusiness", "GetRelativeRanking", "Starting the method");
            List <UserTopDTO> result = null;

            try
            {
                var unitOfWork = Database.Context.Instance;

                var userGameRepository = new UserGameRepository(unitOfWork);

                var userGames = userGameRepository.GetRelativeRanking(atNumber, quantity);

                result = ListUserGaMeToListUserTopDTO(userGames, atNumber - quantity);
            }
            catch (Exception e)
            {
                Logger.Error("GameBusiness", "GetRelativeRanking", e.Message);
                throw e;
            }
            finally
            {
                Logger.Trace("GameBusiness", "GetRelativeRanking", "Finishing method");
            }

            return(result);
        }
Esempio n. 2
0
        public void Create()
        {
            var userGameRepository = new UserGameRepository(Database.Context.Instance);

            var game = new Game()
            {
                Id   = 1,
                Name = "Game"
            };

            var user = new User()
            {
                Id        = 0,
                FirstName = "Daniel",
                LastName  = "Cardoza",
            };

            var userGame = new UserGame()
            {
                Id     = 0,
                UserId = user.Id,
                User   = user,
                GameId = game.Id,
                Game   = game,
                Score  = 1000
            };

            userGameRepository.Create(userGame);
        }
Esempio n. 3
0
        public UserDTO SubscribeUserToGame(UserGameDTO userGameDTO)
        {
            Logger.Trace("UserBusiness", "SubscribeUserToGame", "Starting the method");

            UserDTO result = null;

            try
            {
                var unitOfWork = Database.Context.Instance;

                var userRepository     = new UserRepository(unitOfWork);
                var userGameRepository = new UserGameRepository(unitOfWork);

                var user = userRepository.GetById(userGameDTO.UserId);

                if (user != null)
                {
                    user.Games = user.Games ?? new List <UserGame>();

                    //This will be always game 1 because I'm not implementing several games, but the code is
                    //prepared to support it with minimal changes.
                    var game = new Game()
                    {
                        Id   = userGameDTO.GameId,
                        Name = "Game"
                    };

                    var userGame = new UserGame()
                    {
                        UserId = user.Id,
                        User   = user,
                        GameId = 1,
                        Game   = game,
                        Score  = 0
                    };

                    user.Games.Add(userGame);

                    userGameRepository.Create(userGame);
                    user = userRepository.Update(user);

                    result = UserToUserDTO(user);
                }
            }
            catch (Exception e)
            {
                Logger.Error("UserBusiness", "SubscribeUserToGame", e.Message);
                throw e;
            }
            finally
            {
                Logger.Trace("UserBusiness", "SubscribeUserToGame", "Finishing method");
            }

            return(result);
        }
Esempio n. 4
0
        public void GetById()
        {
            var userGameRepository = new UserGameRepository(Database.Context.Instance);

            var result = userGameRepository.GetById(1);

            Assert.IsNotNull(result);

            Assert.AreEqual(1, result.Id);
        }
Esempio n. 5
0
        public void GetRelativeRanking()
        {
            var userGameRepository = new UserGameRepository(Database.Context.Instance);

            var result = userGameRepository.GetRelativeRanking(10, 2);

            Assert.IsNotNull(result);

            Assert.IsNotNull(result.Count == 5);

            Assert.IsNotNull(result.First().Score >= result.Last().Score);

            result = userGameRepository.GetRelativeRanking(100, 10);

            Assert.IsNotNull(result.Count == 21);

            Assert.IsNotNull(result.First().Score >= result.Last().Score);
        }
Esempio n. 6
0
        public void Delete()
        {
            var userGameRepository = new UserGameRepository(Database.Context.Instance);

            var result = userGameRepository.Delete(new UserGame()
            {
                Id = 100
            });

            Assert.IsNotNull(result);

            result = userGameRepository.Delete(new UserGame()
            {
                Id = -1
            });

            Assert.IsNull(result);
        }
Esempio n. 7
0
        public UserDTO Delete(int userId)
        {
            Logger.Trace("UserBusiness", "Delete", "Starting the method");

            UserDTO result = null;

            try
            {
                var unitOfWork = Database.Context.Instance;

                var userRepository     = new UserRepository(unitOfWork);
                var userGameRepository = new UserGameRepository(unitOfWork);

                var user = userRepository.GetById(userId);

                if (user != null)
                {
                    userRepository.Delete(user);

                    if (user.Games != null)
                    {
                        foreach (var game in user.Games)
                        {
                            userGameRepository.Delete(game);
                        }
                    }

                    result = UserToUserDTO(user);
                }
            }
            catch (Exception e)
            {
                Logger.Error("UserBusiness", "Delete", e.Message);
                throw e;
            }
            finally
            {
                Logger.Trace("UserBusiness", "Delete", "Finishing method");
            }

            return(result);
        }
Esempio n. 8
0
        public void Update()
        {
            var userGameRepository = new UserGameRepository(Database.Context.Instance);

            var game = new Game()
            {
                Id   = 1,
                Name = "Game"
            };

            var user = new User()
            {
                Id        = 1,
                FirstName = "FirstName_1",
                LastName  = "LastName_1",
            };

            var userGame = new UserGame()
            {
                Id     = 1,
                UserId = user.Id,
                User   = user,
                GameId = game.Id,
                Game   = game,
                Score  = 500
            };

            var result = userGameRepository.Update(userGame);

            Assert.IsNotNull(result);

            Assert.AreEqual(1, result.Id);
            Assert.AreEqual(1, result.UserId);
            Assert.AreEqual("FirstName_1", result.User.FirstName);
            Assert.AreEqual("LastName_1", result.User.LastName);
            Assert.AreEqual(1, result.GameId);
            Assert.AreEqual("Game", result.Game.Name);
            Assert.AreEqual(500, result.Score);
        }