public async Task <IActionResult> PutUsersPosts([FromRoute] int id, [FromBody] UsersPosts usersPosts) { //Console.WriteLine(usersPosts.postTitle); //Console.WriteLine(id); if (id != usersPosts.postID) { return(BadRequest()); } _context.Entry(usersPosts).State = EntityState.Modified; try { await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!UsersPostsExists(id)) { return(NotFound()); } else { throw; } } return(NoContent()); }
public async Task <ActionResult <UsersPosts> > PostUsersPosts([FromBody] UsersPosts usersPosts) { _context.UsersPosts.Add(usersPosts); await _context.SaveChangesAsync(); return(CreatedAtAction("GetUsersPosts", new { id = usersPosts.postID }, usersPosts)); }
private static void Main(string[] args) { var allUsers = ReadUsers("users.json"); var allPosts = ReadPosts("posts.json"); // 1 - find all users having email ending with ".net". var users1 = from u in allUsers where u.Email.EndsWith(".net") select u; var users2 = allUsers.Where(x => x.Email.EndsWith(".net")); var emails = allUsers.Select(x => x.Email).ToList(); // 2 - find all posts for users having email ending with ".net". Console.WriteLine("2: find all posts for users having email ending with .net"); IEnumerable <int> usersIdsWithDotNetMails = from user in allUsers where user.Email.EndsWith(".net") select user.Id; IEnumerable <Post> posts = from post in allPosts where usersIdsWithDotNetMails.Contains(post.UserId) select post; foreach (var post in posts) { Console.WriteLine(post.Id + " " + "user: "******"3: print number of posts for each user"); /* var queryUserId = from user in allUsers * group user by user.Id into newGroup * select newGroup;*/ var postsPerUser = from post in allPosts group post by post.UserId into usersGroup select new { user = usersGroup.Key, Count = usersGroup.Count(), }; foreach (var item in postsPerUser) { Console.WriteLine($"User Id: {item.user} \t- number of posts: {item.Count}"); } // 4 - find all users that have lat and long negative. Console.WriteLine(); Console.WriteLine("4: find all users that have lat and long negative"); IEnumerable <int> usersLatLng = from user in allUsers where (user.Address.Geo.Lat < 0 && user.Address.Geo.Lng < 0) select user.Id; IEnumerable <User> usersForPrint = from user in allUsers where usersLatLng.Contains(user.Id) select user; foreach (var item in usersForPrint) { Console.WriteLine($"user: {item.Id} - {item.Name} - {item.Username}: {item.Address.Geo.Lat}, {item.Address.Geo.Lng}"); } // 5 - find the post with longest body. Console.WriteLine(); Console.WriteLine("5: find the post with longest body"); int maxPostBody = (from post in allPosts select post.Body.Length).Max(); IEnumerable <Post> postsBody = from post1 in allPosts where post1.Body.Length == maxPostBody select post1; foreach (var post in postsBody) { //Console.WriteLine(post.Id + " " + "user: "******"6: print the name of the employee that have post with longest body"); int maxPost = (from post in allPosts select post.Body.Length).Max(); IEnumerable <int> postsB = from post1 in allPosts where post1.Body.Length == maxPost select post1.UserId; IEnumerable <User> userEmail = from user in allUsers where postsB.Contains(user.Id) select user; foreach (var item in userEmail) { Console.WriteLine($"user: {item.Id} - {item.Name}"); } // 7 - select all addresses in a new List<Address>. print the list. Console.WriteLine(); Console.WriteLine("7: select all addresses in a new List<Address>. print the list."); var queryAllAdress = from user in allUsers select user.Address; foreach (var item in queryAllAdress) { Console.WriteLine(item); } // 8 - print the user with min lat Console.WriteLine(); Console.WriteLine("8: print the user with min lat\n"); double minlat = (from user in allUsers select user.Address.Geo.Lat).Min(); IEnumerable <User> userLat = from user in allUsers where user.Address.Geo.Lat == minlat select user; foreach (var item in userLat) { Console.WriteLine(item); } // 9 - print the user with max long Console.WriteLine(); Console.WriteLine("9: print the user with max long\n"); double maxLng = (from user in allUsers select user.Address.Geo.Lng).Max(); IEnumerable <User> userL = from user in allUsers where user.Address.Geo.Lng == maxLng select user; foreach (var item in userLat) { Console.WriteLine(item); //UsersPosts p = new UsersPosts(item); } // 10 - create a new class: public class UserPosts { public User User {get; set}; public List<Post> Posts {get; set} } // - create a new list: List<UserPosts> // - insert in this list each user with his posts only Console.WriteLine(); Console.WriteLine("10 - NU AM FINALIZAT ACEST EXERCITIU"); IEnumerable <IGrouping <int, Post> > query = allPosts.GroupBy(post => post.UserId, post => post); UsersPosts userWithPosts = new UsersPosts(); foreach (IGrouping <int, Post> postGroup in query) { // Print the key value of the IGrouping. Console.WriteLine(postGroup.Key); User user = new User(); foreach (User item in allUsers) { if (item.Id == postGroup.Key) { user = item; } } userWithPosts.User = user; List <Post> lista = new List <Post>(); // Iterate over each value in the // IGrouping and print the value. foreach (Post post in postGroup) { Console.WriteLine($" {post}"); lista.Add(post); } userWithPosts.Posts = lista; // UsersPosts.PostByUser.Add(userWithPosts, lista); } //var groupedPosts= allPosts.GroupBy(u => u.UserId).Select(grp => grp.ToList()).ToList(); /*foreach (var item in allPosts) * { * Console.WriteLine(item.UserId+ " "+item); * Console.WriteLine(); * } * IEnumerable<IGrouping<int, string>> query = * pets.GroupBy(pet => pet.Age, pet => pet.Name); * * // Iterate over each IGrouping in the collection. * foreach (IGrouping<int, string> petGroup in query) * { * // Print the key value of the IGrouping. * Console.WriteLine(petGroup.Key); * // Iterate over each value in the * // IGrouping and print the value. * foreach (string name in petGroup) * Console.WriteLine(" {0}", name); * } * * var postsPeUser = from post in allPosts * group post by post.UserId into usersGroup * select new * { * user = usersGroup.Key, * Count = usersGroup.Count(), * * }; * foreach (var item in postsPeUser) * { * Console.WriteLine($"User Id: {item.user} \t"); * } * IEnumerable<User> userPosts = from post in allPosts * where postPeUser.Contains(post.UserId) * select post;*/ // 11 - order users by zip code Console.WriteLine(); Console.WriteLine("11 - order users by zip code"); IEnumerable <User> queryZip = allUsers.OrderBy(user => user.Address.Zipcode); foreach (User user in queryZip) { Console.WriteLine($"Zipcode: {user.Address.Zipcode} - Name: {user.Name}"); } // 12 - order users by number of posts Console.WriteLine(); Console.WriteLine("// 12 - order users by number of posts"); var orderPostsPerUser = from post in allPosts group post by post.UserId into usersGroup select new { user = usersGroup.Key, Count = usersGroup.Count(), }; var order = orderPostsPerUser.OrderBy(user => user.Count); User us = new User(); foreach (var item in order) { foreach (var i in allUsers) { if (i.Id == item.user) { us = i; } } Console.WriteLine(item.Count + " - " + us.ToString()); } Console.ReadLine(); }