Example #1
0
        //08. Export Users and Products
        public static string GetUsersWithProducts(ProductShopContext context)
        {
            //1:51:14
            var usersAndProducts = context.Users
                                   .ToArray()
                                   .Where(p => p.ProductsSold.Any())
                                   .Select(u => new ExportUserDto
            {
                FirstName    = u.FirstName,
                LastName     = u.LastName,
                Age          = u.Age,
                SoldProducts = new ExportProductCountDto
                {
                    Count    = u.ProductsSold.Count,
                    Products = u.ProductsSold.Select(p => new ExportProductDtoSt
                    {
                        Name  = p.Name,
                        Price = p.Price
                    })
                               .OrderByDescending(p => p.Price)
                               .ToArray()
                }
            })
                                   .OrderByDescending(x => x.SoldProducts.Count)
                                   .Take(10)
                                   .ToArray();


            var resultDto = new ExportUserCountDto
            {
                Count = context.Users.Count(p => p.ProductsSold.Any()),
                Users = usersAndProducts
            };

            var result = XMLConverter.Serialize(resultDto, "Users");

            return(result);
        }
Example #2
0
        //Problem08
        public static string GetUsersWithProducts(ProductShopContext context)
        {
            ExportUserDto[] usersAndProducts = context
                                               .Users
                                               .ToArray()
                                               .Where(p => p.ProductsSold.Any())
                                               .Select(u => new ExportUserDto
            {
                FirstName    = u.FirstName,
                LastName     = u.LastName,
                Age          = u.Age,
                SoldProducts = new ExportProductCountDto
                {
                    Count    = u.ProductsSold.Count(),
                    Products = u.ProductsSold
                               .Select(p => new ExportProductSecondDto
                    {
                        Name  = p.Name,
                        Price = p.Price
                    })
                               .OrderByDescending(p => p.Price)
                               .ToArray()
                }
            })
                                               .OrderByDescending(x => x.SoldProducts.Count)
                                               .Take(10)
                                               .ToArray();

            ExportUserCountDto result = new ExportUserCountDto
            {
                Users = usersAndProducts,
                Count = context.Users.Count(p => p.ProductsSold.Any())
            };

            string xml = XMLConverter.Serialize(result, "Users");

            return(xml);
        }
Example #3
0
        // Problem 08
        public static string GetUsersWithProducts(ProductShopContext context)
        {
            var targetUsers = context.Users
                              .ToArray()
                              .Where(x => x.ProductsSold.Any())
                              .Select(x => new UserInfo
            {
                FirstName    = x.FirstName,
                LastName     = x.LastName,
                Age          = x.Age,
                SoldProducts = new SoldProductCount
                {
                    Count    = x.ProductsSold.Count,
                    Products = x.ProductsSold.Select(p => new SoldProduct
                    {
                        Name  = p.Name,
                        Price = p.Price
                    })
                               .OrderByDescending(p => p.Price)
                               .ToList()
                }
            })
                              .OrderByDescending(x => x.SoldProducts.Count)
                              .Take(10)
                              .ToList();

            var finalObj = new ExportUserCountDto
            {
                Count = context.Users.Count(x => x.ProductsSold.Any()),
                Users = targetUsers
            };

            const string rootName  = "Users";
            var          resultXml = XMLConverter.Serialize(finalObj, rootName);

            return(resultXml);
        }