Exemplo n.º 1
0
        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());
        }
Exemplo n.º 2
0
        public async Task <ActionResult <UsersPosts> > PostUsersPosts([FromBody] UsersPosts usersPosts)
        {
            _context.UsersPosts.Add(usersPosts);
            await _context.SaveChangesAsync();

            return(CreatedAtAction("GetUsersPosts", new { id = usersPosts.postID }, usersPosts));
        }
Exemplo n.º 3
0
        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();
        }