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); }
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); }
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); }
public void GetById() { var userGameRepository = new UserGameRepository(Database.Context.Instance); var result = userGameRepository.GetById(1); Assert.IsNotNull(result); Assert.AreEqual(1, result.Id); }
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); }
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); }
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); }
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); }