Exemplo n.º 1
0
        private static void ParseXmlDocument(DiabloEntities context, string filePath)
        {
            var doc = XDocument.Load(filePath);
            var users = doc.Descendants("user");
            
            foreach (var user in users)
            {
                try
                {
                    var username = user.Attribute("username").Value;

                    if (context.Users.Any(u => u.Username == username))
                    {
                        throw new InvalidOperationException(string.Format("User {0} already exists", username));
                    }

                    var output = new StringBuilder();
                    User newUser = ParseUserData(user, username, output);
                    output.AppendFormat("Successfully added user {0}", username).AppendLine();

                    foreach (var game in user.Descendants("game"))
                    {
                        var newUserGame = ParseGameData(context, game);
                        newUser.UsersGames.Add(newUserGame);
                        output.AppendFormat("User {0} successfully added to game {1}", username, newUserGame.Game.Name)
                            .AppendLine();
                    }

                    context.Users.Add(newUser);
                    context.SaveChanges();
                    Console.WriteLine(output);
                }
                catch (Exception e)
                {
                    Console.WriteLine(e.Message);
                }
            }
        }