private static void Main() { var context = new DiabloEntities(); XmlDocument doc = new XmlDocument(); doc.Load("../../users-and-games.xml"); XmlElement root = doc.DocumentElement; foreach (XmlNode xmlUser in root.ChildNodes) { User user = ExtractUserData(xmlUser); if (context.Users.Any(u => u.Username == user.Username)) { Console.WriteLine("User {0} already exists", user.Username); continue; } else { context.Users.Add(user); Console.WriteLine("Successfully added user {0}", user.Username); } XmlNode gamesNode = xmlUser.SelectSingleNode("games"); foreach (XmlNode xmlGame in gamesNode) { string[] joined = xmlGame.SelectSingleNode("joined-on").InnerText.Split('/').ToArray(); int year = int.Parse(joined[2]); int month = int.Parse(joined[1]); int day = int.Parse(joined[0]); XmlNode xmlCharacter = xmlGame.SelectSingleNode("character"); string characterName = xmlCharacter.Attributes["name"].Value; decimal characterCash = decimal.Parse(xmlCharacter.Attributes["cash"].Value); int characterLevel = int.Parse(xmlCharacter.Attributes["level"].Value); DateTime joinedOn = new DateTime(year, month, day); string gameName = xmlGame.SelectSingleNode("game-name").InnerText; UsersGame newGame = new UsersGame { User = user, Cash = characterCash, Level = characterLevel, Character = context.Characters.FirstOrDefault(c => c.Name == characterName), JoinedOn = joinedOn, Game = context.Games.FirstOrDefault(g => g.Name == gameName) }; context.UsersGames.Add(newGame); Console.WriteLine("User {0} successfully added to game {1}", user.Username, gameName); } //save here to make sure either the user with all games is saved, or nothing context.SaveChanges(); } }
static void Main() { var context = new DiabloEntities(); var testQuery = context.Characters.Select(ch => ch.Name); foreach (var character in testQuery) { Console.WriteLine(character); } }
static void Main() { var context = new DiabloEntities(); var characterNames = context.Characters .Select(c => c.Name) .ToList(); foreach (var name in characterNames) { Console.WriteLine(name); } }
static void Main() { Thread.CurrentThread.CurrentCulture = System.Globalization.CultureInfo.InvariantCulture; var context = new DiabloEntities(); var gamesQuery = context.Games .Where(g => g.IsFinished == true) .Select(g => new { GameName = g.Name, GameDuration = g.Duration, GameUsers = g.UsersGames .Select(u => new { u.User.Username, u.User.IpAddress }) }) .OrderBy(g => g.GameName) .ThenBy(g => g.GameDuration) .ToList(); XElement games = new XElement("games"); foreach (var game in gamesQuery) { XElement xmlGame = new XElement("game", new XAttribute("name", game.GameName)); if (game.GameDuration != null) { xmlGame.Add(new XAttribute("duration", game.GameDuration)); } var xmlUsers = new XElement("users"); foreach (var user in game.GameUsers) { xmlUsers.Add(new XElement("user", new XAttribute("username", user.Username), new XAttribute("ip-address", user.IpAddress))); } xmlGame.Add(xmlUsers); games.Add(xmlGame); } games.Save("../../finished-games.xml"); }
static void Main() { var context = new DiabloEntities(); var gamesQuery = context.Games .Where(g => g.IsFinished) .OrderBy(g => g.Name) .ThenBy(g => g.Duration) .Select(g => new { GameName = g.Name, Duration = g.Duration, Users = g.UsersGames .Select(u => new { UserName = u.User.Username, IpAdress = u.User.IpAddress }) }) .ToList(); var xmlGames = new XElement("games"); foreach (var game in gamesQuery) { var xmlGame = new XElement("game"); xmlGame.Add(new XAttribute("name", game.GameName)); if (game.Duration != null) { xmlGame.Add(new XAttribute("duration", game.Duration)); } var xmlUsers = new XElement("users"); foreach (var user in game.Users) { xmlUsers.Add(new XElement("user", new XAttribute("username", user.UserName), new XAttribute("ip-address", user.IpAdress))); } xmlGame.Add(xmlUsers); xmlGames.Add(xmlGame); } var xmlDoc = new XDocument(xmlGames); xmlDoc.Save("../../finished-games.xml"); }
static void Main() { var context = new DiabloEntities(); var charactersQuery = context.Characters .OrderBy(ch => ch.Name) .Select(ch => new { name = ch.Name, playedBy = ch.UsersGames.Select(u => u.User.Username) }) .ToList(); var jsSerializer = new JavaScriptSerializer(); var charsJson = jsSerializer.Serialize(charactersQuery); File.WriteAllText("../../characters.json", charsJson); }
static void Main() { var context = new DiabloEntities(); var characters = context.Characters .Select(c => new { CharacterName = c.Name, PlayedBy = c.UsersGames. Select(u => new { u.User.Username }) }) .OrderBy(c => c.CharacterName) .ToList(); var json = new JavaScriptSerializer().Serialize(characters); File.WriteAllText("../../characters.json", json); }