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); } }
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); }
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); }
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); } }