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