Пример #1
0
        static void Main()
        {
            var context = new DiabloContext();
            var dbUsers = context.Users.ToList();

            XmlDocument doc = new XmlDocument();

            doc.Load("../../../users-and-games.xml");

            XmlNodeList users = doc.SelectNodes("/users/user");

            foreach (XmlNode user in users)
            {
                string username = user.Attributes["username"].InnerText;

                var dbUser = dbUsers.FirstOrDefault(u => u.Username == username);
                if (dbUser != null)
                {
                    Console.WriteLine($"User {username} already exists");
                }
                else
                {
                    User currentUser = createUser(context, user, username);
                    addUserToGames(user, currentUser.Id, currentUser.Username, context);
                }
            }
        }
        static void Main(string[] args)
        {
            var db            = new DiabloContext();
            var finishedGames = db.Games
                                .Where(g => g.IsFinished == true)
                                .Select(g => new
            {
                GameName     = g.Name,
                GameDuration = g.Duration,
                Users        = g.UsersGames.Select(ug => new
                {
                    UserName  = ug.User.Username,
                    IpAddress = ug.User.IpAddress
                })
            }).OrderBy(g => g.GameName).ThenBy(g => g.GameDuration);

            var XMLgames = new XElement("games");

            foreach (var finishedGame in finishedGames)
            {
                var finishedGameXML = new XElement("game");
                finishedGameXML.Add(new XAttribute("name", finishedGame.GameName));
                if (finishedGame.GameDuration != null)
                {
                    finishedGameXML.Add(new XAttribute("duration", finishedGame.GameDuration));
                }

                if (finishedGame.Users.Count() != 0)
                {
                    var usersXML = new XElement("users");

                    var users = finishedGame.Users;
                    foreach (var user in users)
                    {
                        var userXML = new XElement("user",
                                                   new XAttribute("username", user.UserName),
                                                   new XAttribute("ip-address", user.IpAddress));
                        usersXML.Add(userXML);
                    }

                    finishedGameXML.Add(new XElement(usersXML));
                }
                else
                {
                    finishedGameXML.Add(new XElement("users"));
                }


                XMLgames.Add(finishedGameXML);
            }

            XMLgames.Save("../../finished-games.xml");
            Console.WriteLine(XMLgames);
        }
Пример #3
0
        static void Main(string[] args)
        {
            var db = new DiabloContext();
            var charactersWithPlayers = db.Characters
                                        .Select(c => new
            {
                name     = c.Name,
                playedBy = c.UsersGames.Select(ug => ug.User.Username)
            }).OrderBy(c => c.name);
            var json = new JavaScriptSerializer().Serialize(charactersWithPlayers);

            Console.WriteLine(json);
            System.IO.File.WriteAllText(@"../../characters.json", json);
        }
        static void Main()
        {
            var context = new DiabloContext();

            var characters = context.Characters
                             .OrderBy(c => c.Name)
                             .Select(c => new
            {
                name     = c.Name,
                playedBy = c.UsersGames.Select(ug => ug.User.Username)
            });

            string charactersJson = new JavaScriptSerializer().Serialize(characters);

            File.WriteAllText("../../../characters.json", charactersJson);
        }
Пример #5
0
        static void Main()
        {
            var context = new DiabloContext();

            var finishedGames = context.Games
                                .Where(g => g.IsFinished)
                                .Select(g => new
            {
                name     = g.Name,
                duration = g.Duration,
                users    = g.UsersGames.Select(ug => new
                {
                    username = ug.User.Username,
                    ipAdress = ug.User.IpAddress
                })
            });

            XElement gamesElement = new XElement("games");

            foreach (var game in finishedGames)
            {
                XElement gameElement = new XElement("game", new XAttribute("name", game.name));

                if (game.duration != null)
                {
                    gameElement.Add(new XAttribute("duration", game.duration));
                }

                XElement usersElement = new XElement("users");

                foreach (var user in game.users)
                {
                    XElement userElement = new XElement("user", new XAttribute("username", user.username),
                                                        new XAttribute("ip-address", user.ipAdress));

                    usersElement.Add(userElement);
                }

                gameElement.Add(usersElement);
                gamesElement.Add(gameElement);
            }

            gamesElement.Save("../../../finished-games.xml");
        }
Пример #6
0
        public static User createUser(DiabloContext context, XmlNode user, string username)
        {
            string   firstName        = null;
            string   lastName         = null;
            string   email            = null;
            DateTime registrationDate = DateTime.Parse(user.Attributes["registration-date"].InnerText);
            bool     isDeleted        = int.Parse(user.Attributes["is-deleted"].InnerText) != 0;
            string   ipAddress        = user.Attributes["ip-address"].InnerText;

            if (user.Attributes["first-name"] != null)
            {
                firstName = user.Attributes["first-name"].InnerText;
            }

            if (user.Attributes["last-name"] != null)
            {
                lastName = user.Attributes["last-name"].InnerText;
            }

            if (user.Attributes["email"] != null)
            {
                email = user.Attributes["email"].InnerText;
            }

            User currentUser = new User
            {
                Username         = username,
                FirstName        = firstName,
                LastName         = lastName,
                Email            = email,
                RegistrationDate = registrationDate,
                IsDeleted        = isDeleted,
                IpAddress        = ipAddress
            };

            context.Users.Add(currentUser);
            context.SaveChanges();

            Console.WriteLine($"Successfully added user {currentUser.Username}");
            return(currentUser);
        }
Пример #7
0
        static void Main(string[] args)
        {
            Console.BufferHeight = Int16.MaxValue - 1;
            var         db  = new DiabloContext();
            XmlDocument doc = new XmlDocument();

            doc.Load("../../users-and-games.xml");

            var root = doc.DocumentElement;

            foreach (XmlNode user in root)
            {
                try
                {
                    var userFirstName = user.Attributes["first-name"] == null ? null : user.Attributes["first-name"].Value;
                    var userLastName  = user.Attributes["last-name"] == null ? null : user.Attributes["last-name"].Value;
                    var userEmail     = user.Attributes["email"] == null ? null : user.Attributes["email"].Value;
                    var userUserName  = user.Attributes["username"] == null ? null : user.Attributes["username"].Value;

                    bool     userIsDeleted        = user.Attributes["is-deleted"].Value == "0" ? true : false;
                    var      userIpAddress        = user.Attributes["ip-address"] == null ? null : user.Attributes["ip-address"].Value;
                    DateTime userRegistracionDate = DateTime.ParseExact(user.Attributes["registration-date"].Value, "dd/MM/yyyy", null);

                    User userDb = null;

                    if (db.Users.Any(u => u.Username == userUserName))
                    {
                        Console.WriteLine("User {0} already exists", userUserName);
                    }
                    else
                    {
                        userDb = new User()
                        {
                            Username         = userUserName,
                            Email            = userEmail,
                            FirstName        = userFirstName,
                            IpAddress        = userIpAddress,
                            IsDeleted        = userIsDeleted,
                            LastName         = userLastName,
                            RegistrationDate = userRegistracionDate
                        };
                        db.Users.Add(userDb);

                        Console.WriteLine("Successfully added user {0}", userUserName);

                        foreach (XmlNode games in user.ChildNodes)
                        {
                            foreach (XmlNode game in games)
                            {
                                var gameName       = game["game-name"].InnerText;
                                var CharacterName  = game["character"].Attributes["name"].Value;
                                var CharacterCash  = game["character"].Attributes["cash"].Value;
                                var CharacterLevel = game["character"].Attributes["level"].Value;
                                var joinedOn       = game["joined-on"].InnerText;

                                var dbGame = db.Games.Where(g => g.Name == gameName).FirstOrDefault();



                                UsersGame ug = new UsersGame()
                                {
                                    Game      = db.Games.Where(g => g.Name == gameName).FirstOrDefault(),
                                    User      = userDb,
                                    Cash      = Convert.ToDecimal(CharacterCash),
                                    Level     = Convert.ToInt32(CharacterLevel),
                                    JoinedOn  = DateTime.ParseExact(joinedOn, "dd/MM/yyyy", null),
                                    Character = new Character()
                                    {
                                        Name = CharacterName
                                    }
                                };
                                db.UsersGames.Add(ug);
                                db.SaveChanges();
                                Console.WriteLine("User {0} successfully added to game {1}", userDb.Username, gameName);
                            }
                        }
                    }
                }
                catch (Exception e)
                {
                }
            }
        }
Пример #8
0
        private static void addUserToGames(XmlNode user, int userId, string username, DiabloContext context)
        {
            XmlNodeList userGames = user.SelectNodes("games/game");

            foreach (XmlNode userGame in userGames)
            {
                string   gameName      = userGame["game-name"].InnerText;
                XmlNode  character     = userGame.SelectSingleNode("character");
                string   characterName = character.Attributes["name"].InnerText;
                decimal  cash          = decimal.Parse(character.Attributes["cash"].InnerText);
                int      level         = int.Parse(character.Attributes["level"].InnerText);
                DateTime joinedOn      = DateTime.Parse(userGame["joined-on"].InnerText);

                int gameId      = context.Games.FirstOrDefault(g => g.Name == gameName).Id;
                int characterId = context.Characters.FirstOrDefault(c => c.Name == characterName).Id;

                UsersGame currentUsersGame = new UsersGame
                {
                    GameId      = gameId,
                    UserId      = userId,
                    CharacterId = characterId,
                    Level       = level,
                    JoinedOn    = joinedOn,
                    Cash        = cash
                };

                context.UsersGames.Add(currentUsersGame);

                Console.WriteLine($"User {username} successfully added to game {gameName}");
            }

            context.SaveChanges();
        }