Advertisement
Guest User

Untitled

a guest
Jun 24th, 2019
91
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.83 KB | None | 0 0
  1. public static IEnumerable<TResult> GroupJoin<T1, T2, T3, TKey, TResult>(
  2. this IEnumerable<T1> source1, IEnumerable<T2> source2, IEnumerable<T3> source3,
  3. Func<T1, TKey> key1Selector,
  4. Func<T2, TKey> key2Selector,
  5. Func<T3, TKey> key3Selector,
  6. Func<T1, IEnumerable<T2>, IEnumerable<T3>, TResult> resultSelector)
  7. {
  8. var lookup2 = source2.ToLookup(item => key2Selector(item));
  9. var lookup3 = source3.ToLookup(item => key3Selector(item));
  10. foreach (var item1 in source1)
  11. {
  12. TKey key1 = key1Selector(item1);
  13. IEnumerable<T2> items2 = lookup2[key1];
  14. IEnumerable<T3> items3 = lookup3[key1];
  15. TResult result = resultSelector(item1, items2, items3);
  16. yield return result;
  17. }
  18. }
  19.  
  20. public ICollection<ProductModel> GetAllProductsWithImagesSortByValue(List<int> values)
  21. {
  22. return context.Product.GroupJoin(
  23. context.ProductValue,
  24. context.ImageObject.Include(x => x.Image),
  25. p => p.ProductId,
  26. pv => pv.ProductId,
  27. io => io.ProductId,
  28. (p, pv, io) => new ProductModel
  29. {
  30. ProductId = p.ProductId,
  31. Name = p.Name,
  32. Price = p.Price,
  33. ProductValue = pv
  34. .Select(npv => new ProductValueModel
  35. {
  36. ValueId = npv.ValueId,
  37. })
  38. .ToList(),
  39. ImageObject = io
  40. .Select(nio => new ImageObjectModel
  41. {
  42. Image = nio.Image.DtoToModel(),
  43. IsDefault = nio.IsDefault,
  44. ProductId = nio.ProductId
  45. })
  46. .ToList(),
  47. })
  48. .ToCollection();
  49. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement