private static void CreateNewGameIfNotExists(DiabloEntities context, User user, IEnumerable<XElement> xGames) { foreach (var xGame in xGames) { var gameName = xGame.Element("game-name").Value; var characterName = xGame.Element("character").Attribute("name").Value; var characterCash = decimal.Parse(xGame.Element("character").Attribute("cash").Value); var characterLevel = int.Parse(xGame.Element("character").Attribute("level").Value); var characterJoinedOn = DateTime.Parse(xGame.Element("joined-on").Value); var game = context.Games .FirstOrDefault(g => g.Name == gameName); if (game == null) { game = new Game() { Name = gameName }; context.Games.Add(game); } if (user != null) { if (game.UsersGames.All(ug => ug.User.Username != user.Username)) { UsersGame userGame = new UsersGame() { JoinedOn = characterJoinedOn, Cash = characterCash, Level = characterLevel, Character = new Character() { Name = characterName }, Game = game, User = user }; context.UsersGames.Add(userGame); Console.WriteLine("User {0} successfully added to game {1}", user.Username, game.Name); } } } try { context.SaveChanges(); } catch (Exception) { Console.WriteLine("There was a problem adding user in games"); } }
private static User CreateNewUserIfNotExists(DiabloEntities context, XElement xUser) { User user = null; var xUserUsername = xUser.Attribute("username"); var xUserIpAddress = xUser.Attribute("ip-address"); var xUserIsDeleted = xUser.Attribute("is-deleted"); var xUserRegistrationDate = xUser.Attribute("registration-date"); if (xUserUsername != null && xUserRegistrationDate != null && xUserIpAddress != null && xUserIsDeleted != null) { string userUsername = xUserUsername.Value; user = context.Users.FirstOrDefault(u => u.Username == userUsername); if (user != null) { Console.WriteLine("User {0} already exists", userUsername); } else { user = new User() { Username = userUsername, IpAddress = xUserIpAddress.Value, IsDeleted = xUserIsDeleted.Value != "0", RegistrationDate = DateTime.Parse(xUserRegistrationDate.Value) }; if (xUser.Attribute("first-name") != null) { user.FirstName = xUser.Attribute("first-name").Value; } if (xUser.Attribute("last-name") != null) { user.LastName = xUser.Attribute("last-name").Value; } if (xUser.Attribute("email") != null) { user.Email = xUser.Attribute("email").Value; } context.Users.Add(user); Console.WriteLine("Successfully added user {0}", userUsername); } } return user; }