public static void Main() { //AddUsers(); //PostToUser(1, 2, "Hi Plami, Hi are you?"); //CommentToUserPost(2, 1, "I am fine, thank you."); //LikeUserPost(2, 1); //AddGroups(); //AddUserToGroup(1, 1); //AddUserToGroup(2, 1); //AddUserToGroup(1, 2); var context = new SocialNetworkContext(); //var posts = context.Users.Find(2).UserPosts; //foreach (var post in posts) //{ // Console.WriteLine("User is: {0}", context.Users.Find(2).Name); // Console.WriteLine("Author: {0}, Target: {1}", post.Author.Name, post.User.Name); // Console.WriteLine(post.Content); //} var group = context.Groups.Find(1); foreach (var member in group.Members) { Console.WriteLine("Member: {0}", member.Name); } //PostToGroup(1, 1, "Ho ho ho"); //PostToGroup(2, 1, "Ha ha ha"); foreach (var post in context.Groups.Find(1).Posts) { Console.WriteLine("Content: {0}", post.Content); } }
private void ListAllAlbumsWithUser(SocialNetworkContext db) { var albums = db.Albums. Select(a => new { AlbumName = a.Name, Users = a.AlbumHolders.Select(ah => new { Username = ah.User.Username, Role = ah.Role }).OrderBy(u => u.Role).ThenBy(u => u.Username) }) .ToList() .OrderBy(a => a.Users.First().Username) .ThenByDescending(a => a.Users.Where(u => u.Role == Role.Viewer).Count()) .ToList(); foreach (var alb in albums) { Console.WriteLine($"Album: {alb.AlbumName}"); foreach (var user in alb.Users) { Console.WriteLine($"--User: {user.Username}, role = {user.Role}"); } } }
public XmlParser(SocialNetworkContext db) { this.xMLDocFriendships = XDocument.Load("XmlFiles/Friendships.xml"); this.xMLDocPosts = XDocument.Load("XmlFiles/Posts.xml"); this.users = new HashSet <User>(); this.db = db; }
private void ListPictureInMultipleAlbums(SocialNetworkContext db) { var pictures = db.Pictures .Where(p => p.Albums.Count > 2) .Select(p => new { p.Title, AlbumsTitlesAndOwners = p.Albums.Select(a => new { a.Album.Name, Holders = a.Album.AlbumHolders //a.Album.AlbumHolders.First(ah => ah.Role == Role.Owner).User.Username //This is not working because of reasons unknown =/ }) }) .OrderByDescending(p => p.AlbumsTitlesAndOwners.Count()) .ThenBy(p => p.Title) .ToList(); foreach (var pic in pictures) { Console.WriteLine($"Picture: {pic.Title}"); foreach (var alb in pic.AlbumsTitlesAndOwners) { var ownerName = GetOwnerFromHoldersCollection(db, alb.Holders); Console.WriteLine($"--Album name: {alb.Name}"); Console.WriteLine($"---Album owner: {ownerName}"); } } }
public static void LikeUserPost(int userId, int userPostId) { var context = new SocialNetworkContext(); var user = context.Users.Find(userId); var post = context.Postings.Find(userPostId); var like = new Like() { Author = user, Posting = post }; context.Likes.Add(like); try { // Your code... // Could also be before try if you know the exception occurs in SaveChanges context.SaveChanges(); } catch (DbEntityValidationException e) { foreach (var eve in e.EntityValidationErrors) { Console.WriteLine("Entity of type \"{0}\" in state \"{1}\" has the following validation errors:", eve.Entry.Entity.GetType().Name, eve.Entry.State); foreach (var ve in eve.ValidationErrors) { Console.WriteLine("- Property: \"{0}\", Error: \"{1}\"", ve.PropertyName, ve.ErrorMessage); } } throw; } }
public void ParsePostData() { Console.Write("Parsing Posts and adding to database:"); var posts = xMLDocPosts.Root.Elements("Post"); var usersFromDb = db.Users.ToList <User>(); foreach (XElement post in posts) { var postToAdd = new Post(); postToAdd.Content = post.Element("Content").Value; postToAdd.DateTime = DateTime.Parse(post.Element("PostedOn").Value); var usersInPost = post.Element("Users").Value.Split(','); foreach (var userToAdd in usersInPost) { postToAdd.Users.Add(usersFromDb.FirstOrDefault(x => x.Username == userToAdd)); } db.Posts.Add(postToAdd); if (cnt % 100 == 0) { db.SaveChanges(); db.Dispose(); db = new SocialNetworkContext(); usersFromDb = db.Users.ToList <User>(); Console.Write("."); } cnt++; } }
public IEnumerable GetChatUsers(string username) { var ctx = new SocialNetworkContext(); var user = ctx.Users.FirstOrDefault(u => u.Username == username); if (user == null) { return(null); } var uniqueUsersChattedWith = ctx.Friendships .Where(f => f.FirstUser.FirstName == user.Username || f.SecondUser.Username == user.Username) .Select(u => new { Username = u.FirstUser.Username == username ? u.SecondUser.Username : u.FirstUser.Username //// Uncomment it to see that the messages are more than 0 :) //// CountMessages = u.Messages.Count }) .GroupBy(u => u.Username) .OrderBy(u => u.Key) .ToList(); return(uniqueUsersChattedWith); }
public IHttpActionResult GetAllUsers() { try { using (var ctx = new SocialNetworkContext()) { var users = ctx.Users.ToList(); #if SECURE foreach (var u in users) { u.Password = null; } #endif //Sensitive Data Exposure return(Json(new { success = true, users })); } } catch (Exception ex) { return(Json(new { success = false, error = ex.Message })); } }
public IHttpActionResult DeletePost(int id) { try { using (var ctx = new SocialNetworkContext()) { var post = ctx.Posts.Where(w => w.Id == id).SingleOrDefault(); if (post != null) { ctx.Posts.Remove(post); } ctx.SaveChanges(); return(Json(new { success = true })); } } catch (Exception ex) { return(Json(new { success = false, error = ex.Message })); } }
public IHttpActionResult CreatePost([FromBody] Post post) { try { using (var ctx = new SocialNetworkContext()) { post.DateCreated = DateTime.Now; post.UserId = GetCurrentUser().Id; ctx.Posts.Add(post); ctx.SaveChanges(); return(Json(new { success = true })); } } catch (Exception ex) { return(Json(new { success = false, error = ex.Message })); } }
private static void AddUsers(SocialNetworkContext context) { User user = new User { BirthDate = DateTime.Now, FirstName = "Olga", LastName = "Mirnaya", Login = "******", Password = "******" }; User user1 = new User { BirthDate = DateTime.Now, FirstName = "Admin", LastName = "Admin", Login = "******", Password = "******" }; context.Users.Add(user); context.Users.Add(user1); }
private void ListAllAlbumsWithGivenTag(SocialNetworkContext db) { var specialTag = db.Tags.OrderBy(t => Guid.NewGuid()).Select(t => t.Title).First(); Console.WriteLine($"Listing all albums with tag: {specialTag}"); var albumsWithTag = db.Albums .Where(a => a.Tags.Any(at => at.Tag.Title == specialTag)) .OrderByDescending(a => a.Tags.Count) .ThenBy(a => a.Name) .Select(a => new { AlbumTitle = a.Name, Owner = a.AlbumHolders.First(ah => ah.Role == Role.Owner).User.Username }) .ToList(); foreach (var alb in albumsWithTag) { Console.WriteLine($"Album: {alb.AlbumTitle}"); Console.WriteLine($"-Owner: {alb.Owner}"); } if (albumsWithTag.Count == 0) { Console.WriteLine($"No albums with tag \"{specialTag}\" available."); } }
public void Create(Notification notification) { var notificationContext = new SocialNetworkContext(); notificationContext.Notifications.Add(notification); notificationContext.SaveChanges(); }
private void ListAlbumsSharedWithUser(SocialNetworkContext db) { var testUsername = "******"; var sharedAlbums = db.Albums .Where(ah => ah.AlbumHolders .Any(a => a.User.Username == testUsername && a.Role == Role.Viewer) ) .Select(a => new { AlbumName = a.Name, PictureCount = a.Pictures.Count }) .OrderByDescending(a => a.PictureCount) .ThenBy(a => a.AlbumName) .ToList(); Console.WriteLine($"Albums shared with: {testUsername}"); foreach (var alb in sharedAlbums) { Console.WriteLine($"-Album: {alb.AlbumName}"); Console.WriteLine($"-Pictures: {alb.PictureCount}"); } }
private static void ListAllUsersWithMoreThan3Tags(SocialNetworkContext context) { var users = context .Users .Where(u => u.AlbumsOwned.Any(a => a.Tags.Count >= 2)) // yeaa... lazy to fix seed... .OrderByDescending(u => u.AlbumsOwned.Count) .ThenBy(u => u.Username) .Select(u => new { u.Username, Album = u.AlbumsOwned.Select(a => new { a.Name, TagName = a.Tags.Select(t => t.Tag.Name) }) }) .ToList(); foreach (var user in users) { Console.WriteLine(user.Username); foreach (var album in user.Album) { Console.WriteLine($"--Name {album.Name}| {string.Join(", ", album.TagName)}"); } } }
private static void RecieveTagsAndSaveThemToDb(SocialNetworkContext context) { Console.WriteLine("Enter tag:"); string tagAsString = Console.ReadLine(); string validTag = tagAsString.Transform(); List <Album> albums = context.Albums.ToList(); Random rnd = new Random(); Tag tag = new Tag() { Name = validTag }; for (int i = 0; i < 2; i++) { int next = rnd.Next(0, albums.Count); if (tag.Albums.All(a => a.AlbumId != next)) { tag.Albums.Add(new AlbumTags() { AlbumId = albums[next].Id }); } } context.Tags.Add(tag); context.SaveChanges(); Console.WriteLine($"{tag} was added to database"); }
public User Authenticate(string userName, string password) { User user; using (var context = new SocialNetworkContext(new DbContextOptions <SocialNetworkContext>())) { user = context.Users.FirstOrDefault(u => u.UserName == userName && u.Password == password); } if (user == null) { return(null); } // authentication successful, generate jwt token var tokenHandler = new JwtSecurityTokenHandler(); var key = Encoding.ASCII.GetBytes("symetricKeyForNWTProject"); var tokenDescriptor = new SecurityTokenDescriptor { Subject = new ClaimsIdentity(new Claim[] { new Claim(ClaimTypes.Name, user.UserId.ToString()) }), Expires = DateTime.UtcNow.AddDays(7), SigningCredentials = new SigningCredentials(new SymmetricSecurityKey(key), SecurityAlgorithms.HmacSha256Signature), }; var token = tokenHandler.CreateToken(tokenDescriptor); user.Token = tokenHandler.WriteToken(token); return(user); }
private static void ListAllUsersWithAllFriends(SocialNetworkContext context) { var users = context .Users .Where(u => u.Friends.Any()) .Select(u => new { u.Username, Count = u.Friends.Count, Friends = u.Friends .Select(f => new { Status = f.Friend.IsDeleted ? "Inactive" : "Active" }) }) .OrderByDescending(u => u.Count) .ThenBy(u => u.Username) .ToList(); foreach (var user in users) { Console.WriteLine($"User {user.Username} have {user.Count} friends"); foreach (var friend in user.Friends) { Console.WriteLine($"---{friend.Status}"); } } }
protected override void Seed(SocialNetworkContext context) { if (context.Roles.Any()) { return; } var user = context.Users.First(); var adminRole = new IdentityRole() { Name = "Admin" }; var moderatorRole = new IdentityRole() { Name = "Moderator" }; context.Roles.Add(adminRole); context.Roles.Add(moderatorRole); context.SaveChanges(); adminRole.Users.Add(new IdentityUserRole() { UserId = user.Id }); context.SaveChanges(); }
private void ListUsersWithAlbumsWithMoreThanThreeTags(SocialNetworkContext db) { Console.WriteLine($"Listing all users that have albums with more than 3 tags:"); var users = db.Users .Where(u => u.Albums.Select(a => a.Album).Where(ua => ua.Tags.Count > 3).Count() > 0) .Select(u => new { User = u.Username, Albums = u.Albums.Select(ua => ua.Album).Select(a => new { AlbumName = a.Name, Tags = a.Tags.Select(t => t.Tag.Title) }) }) .ToList() .OrderByDescending(u => u.Albums.Count()) .ThenByDescending(u => u.Albums.Sum(a => a.Tags.Count())) .ThenBy(u => u.User); foreach (var user in users) { Console.WriteLine($"User: {user.User}"); foreach (var alb in user.Albums) { Console.WriteLine($"-Album: {alb.AlbumName}"); Console.WriteLine($"--Tags: {string.Join(", ", alb.Tags)}"); } } }
public ProfileRepository(SocialNetworkContext socialNetworkContext) { context = socialNetworkContext; Profiles = socialNetworkContext.Set <Profile>(); Messages = socialNetworkContext.Set <Message>(); Photos = socialNetworkContext.Set <Photo>(); }
public void DeleteEntity(T entity) { using (var context = new SocialNetworkContext()) { context.Set <T>().Remove(entity); context.SaveChanges(); } }
public static void Main() { Database.SetInitializer(new MigrateDatabaseToLatestVersion <SocialNetworkContext, Configuration>()); using (var ctx = new SocialNetworkContext()) { Console.WriteLine(ctx.Images.Count()); } }
public FriendshipsController() { db = new SocialNetworkContext(); _friendshipService = new FriendshipService( new ProfileEntityFrameworkRepository(db), new FriendshipEntityFrameworkRepository(db) ); }
private string GetOwnerFromHoldersCollection(SocialNetworkContext db, ICollection <UserAlbum> holders) { var userId = holders.Where(a => a.Role == Role.Owner).First().UserId; var ownerName = db.Users.First(u => u.Id == userId).Username; return(ownerName); }
private static void CreateDb() { var ctx = new SocialNetworkContext(); var users = ctx.Users.ToList(); ctx.SaveChanges(); }
public void AddRange(IList <T> entities) { using (var context = new SocialNetworkContext()) { context.Set <T>().AddRange(entities); context.SaveChanges(); } }
public void AddEntity(T entity) { using (var context = new SocialNetworkContext()) { context.Set <T>().Add(entity); context.SaveChanges(); } }
private void ListUsersAndAlbumViewers(SocialNetworkContext db) { var usrs = db.Users .Select(u => new { u.Username, FollowerIds = u.Followers.Select(f => f.SecondUserId), AlbumsOwnedIds = u.Albums .Where(a => a.Role == Role.Owner) .Select(a => a.AlbumId) }) .OrderBy(u => u.Username) .ToList(); foreach (var us in usrs) { var sb = new StringBuilder(); bool userNameAppended = false; foreach (var fol in us.FollowerIds) { var follower = db.Users .Include(u => u.Albums) .First(f => f.Id == fol); foreach (var alb in follower.Albums) { db.Entry(alb).Reference(u => u.Album).Load(); } var albumNames = follower.Albums .Where(a => us.AlbumsOwnedIds.Contains(a.AlbumId)) .Select(a => a.Album.Name) .ToList(); if (albumNames.Count > 0) { if (userNameAppended == false) { sb.AppendLine($"User: { us.Username}"); userNameAppended = true; } sb.AppendLine($"-Follower: {follower.Username}"); string result = string.Join(", ", albumNames); sb.AppendLine($"--Albums shared: {result}"); } } if (sb.Length > 0) { Console.WriteLine(sb.ToString().Trim()); } } }
public static void AddUserToGroup(int userId, int groupId) { var context = new SocialNetworkContext(); var user = context.Users.Find(userId); var group = context.Groups.Find(groupId); group.Members.Add(user); context.SaveChanges(); }
public BaseApiController(SocialNetworkContext data) { this.Data = data; }