Ejemplo n.º 1
0
        private UserProfile GetUser(SocialNetworkDbContext db, UserXmlModel model, HashSet <string> addedUsersSoFar)
        {
            if (addedUsersSoFar.Contains(model.Username))
            {
                return(db.UserProfiles.FirstOrDefault(u => u.Username == model.Username));
            }
            else
            {
                addedUsersSoFar.Add(model.Username);

                var user = new UserProfile
                {
                    Username     = model.Username,
                    FirstName    = model.FirstName,
                    LastName     = model.LastName,
                    RegisteredOn = model.RegisteredOn
                };

                foreach (var image in model.Images)
                {
                    user.Images.Add(new Image
                    {
                        ImageUrl      = image.ImageUrl,
                        FileExtension = image.FileExtension
                    });
                }

                db.UserProfiles.Add(user);
                db.SaveChanges();

                return(user);
            }
        }
        private UserProfile GetUser(SocialNetworkDBContext db, UserXmlModel userModel, ICollection <string> usernames)
        {
            if (usernames.Contains(userModel.Username))
            {
                return(db.UserProfiles.FirstOrDefault(u => u.UserName == userModel.Username));
            }
            else
            {
                usernames.Add(userModel.Username);

                var user = new UserProfile()
                {
                    UserName         = userModel.Username,
                    RegistrationDate = userModel.RegisteredOn,
                    FirstName        = userModel.FirstName,
                    LastName         = userModel.LastName
                };

                foreach (var image in userModel.Images)
                {
                    user.Images.Add(new Image()
                    {
                        Url           = image.ImageUrl,
                        FileExtension = image.FileExtension
                    });
                }

                dbContext.UserProfiles.Add(user);
                dbContext.SaveChanges();

                return(user);
            }
        }
Ejemplo n.º 3
0
        private User GetUser(SocialNetworkDbContext context, UserXmlModel model, HashSet <string> addedUsers)
        {
            var  user           = new User();
            bool isAlreadyadded = addedUsers.Contains(model.Username);

            if (isAlreadyadded)
            {
                user = context.Users.SingleOrDefault(u => u.UserName == model.Username);
            }
            else
            {
                addedUsers.Add(model.Username);

                user = new User()
                {
                    UserName     = model.Username,
                    FirstName    = model.FirstName,
                    LastName     = model.LastName,
                    RegisteredOn = model.RegisteredOn
                };

                var images = model.Images;
                foreach (var img in images)
                {
                    Image image = new Image()
                    {
                        Url = img.ImageUrl,

                        FileExtension = img.FileExtension
                    };

                    if (!user.Images.Contains(image))
                    {
                        user.Images.Add(image);
                    }
                }

                context.Users.Add(user);
                context.SaveChanges();
            }

            return(user);
        }
Ejemplo n.º 4
0
        private User GetUser(UserXmlModel user, ICollection <string> addedUsers)
        {
            if (addedUsers.Contains(user.Username))
            {
                return(this.context.Users
                       .FirstOrDefault(x => x.Username.Equals(user.Username)));
            }
            else
            {
                addedUsers.Add(user.Username);

                var newUser = new User
                {
                    Username     = user.Username,
                    Firstname    = user.FirstName,
                    Lastname     = user.LastName,
                    RegisteredOn = user.RegisteredOn
                };

                foreach (var image in user.Images)
                {
                    var img = new Image
                    {
                        FileExtension = image.FileExtension,
                        ImageUrl      = image.ImageUrl
                    };

                    newUser.Images.Add(img);
                }

                this.context.Users.Add(newUser);
                this.context.SaveChanges();

                return(newUser);
            }
        }
        private static string MapApplicationDataAndReturnXmlResult(UserJsonModel jsonModel)
        {
            UserXmlModel xmlModel = new UserXmlModel
            {
                Id          = jsonModel.Id,
                UserName    = jsonModel.FirstName + ' ' + jsonModel.LastName,
                DateOfBirth = jsonModel.DateOfBirth
            };

            xmlModel.Id = jsonModel.Id;

            XmlSerializer serializer = new XmlSerializer(xmlModel.GetType());
            string        result     = string.Empty;

            using (MemoryStream memStm = new MemoryStream())
            {
                serializer.Serialize(memStm, xmlModel);

                memStm.Position = 0;
                result          = new StreamReader(memStm).ReadToEnd();
            }

            return(result);
        }
Ejemplo n.º 6
0
        public void Generate()
        {
            var users     = new List <UserXmlModel>();
            var usernames = new HashSet <string>();

            for (int i = 0; i < NumberOfUsers; i++)
            {
                string username;
                do
                {
                    username = RandomGenerator.RandomString(4, 20);
                }while (usernames.Contains(username.ToLower()));

                usernames.Add(username.ToLower());

                var user = new UserXmlModel
                {
                    Username     = username,
                    FirstName    = RandomGenerator.RandomBool() ? null : RandomGenerator.RandomString(2, 50),
                    LastName     = RandomGenerator.RandomBool() ? null : RandomGenerator.RandomString(2, 50),
                    RegisteredOn = RandomGenerator.RandomDateTime(),
                    Images       = new List <ImageXmlModel>()
                };

                var numberOfImages = RandomGenerator.RandomNumber(1, 8);
                for (int j = 0; j < numberOfImages; j++)
                {
                    user.Images.Add(new ImageXmlModel
                    {
                        ImageUrl      = RandomGenerator.RandomString(4, 20),
                        FileExtension = RandomGenerator.RandomString(1, 4)
                    });
                }

                users.Add(user);
            }

            var friendShips = new Dictionary <string, HashSet <string> >();

            var friendShipsToSerialize = new List <FriendshipXmlModel>();

            for (int i = 0; i < NumberOfFriendships; i++)
            {
                do
                {
                    var firstUser  = users[RandomGenerator.RandomNumber(0, users.Count - 1)];
                    var secondUser = users[RandomGenerator.RandomNumber(0, users.Count - 1)];

                    if (!friendShips.ContainsKey(firstUser.Username))
                    {
                        friendShips.Add(firstUser.Username, new HashSet <string>());
                    }

                    if (!friendShips.ContainsKey(secondUser.Username))
                    {
                        friendShips.Add(secondUser.Username, new HashSet <string>());
                    }

                    if (friendShips[firstUser.Username].Contains(secondUser.Username) ||
                        friendShips[secondUser.Username].Contains(firstUser.Username) ||
                        firstUser.Username == secondUser.Username)
                    {
                        continue;
                    }

                    var approved      = RandomGenerator.RandomBool();
                    var newFriendship = new FriendshipXmlModel
                    {
                        Approved     = approved,
                        FriendsSince = approved ? (DateTime?)RandomGenerator.RandomDateTime() : null,
                        FirstUser    = firstUser,
                        SecondUser   = secondUser,
                        Messages     = new List <MessageXmlModel>()
                    };

                    friendShips[firstUser.Username].Add(secondUser.Username);
                    friendShips[secondUser.Username].Add(firstUser.Username);

                    var numberOfMessages = RandomGenerator.RandomNumber(0, 10);
                    for (int j = 0; j < numberOfMessages; j++)
                    {
                        newFriendship.Messages.Add(new MessageXmlModel
                        {
                            Author  = RandomGenerator.RandomBool() ? firstUser.Username : secondUser.Username,
                            Content = RandomGenerator.RandomString(10, 100),
                            SentOn  = RandomGenerator.RandomDateTime(),
                            SeenOn  = RandomGenerator.RandomBool() ? (DateTime?)RandomGenerator.RandomDateTime() : null
                        });
                    }

                    friendShipsToSerialize.Add(newFriendship);

                    break;
                }while (true);
            }

            var xmlSerializer = new XmlSerializer(typeof(List <FriendshipXmlModel>), new XmlRootAttribute("Friendships"));

            using (var fs = new FileStream("RandomFriendships.xml", FileMode.Create))
            {
                xmlSerializer.Serialize(fs, friendShipsToSerialize);
            }

            var postsToSerialize = new List <PostXmlModel>();

            for (int i = 0; i < NumberOfPosts; i++)
            {
                var numberOfTags = RandomGenerator.RandomNumber(1, 10);
                var taggedUsers  = new List <string>();
                for (int j = 0; j < numberOfTags; j++)
                {
                    taggedUsers.Add(users[RandomGenerator.RandomNumber(0, users.Count - 1)].Username);
                }

                postsToSerialize.Add(new PostXmlModel
                {
                    Content  = RandomGenerator.RandomString(20, 100),
                    PostedOn = RandomGenerator.RandomDateTime(),
                    Users    = string.Join(",", taggedUsers)
                });
            }

            xmlSerializer = new XmlSerializer(typeof(List <PostXmlModel>), new XmlRootAttribute("Posts"));
            using (var fs = new FileStream("RandomPosts.xml", FileMode.Create))
            {
                xmlSerializer.Serialize(fs, postsToSerialize);
            }
        }