using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using Tango.BL.Entities; using System.Data.Entity; namespace Tango.BL.Builders { public class CatalogBuilder : EntityBuilderBase { public CatalogBuilder(ObservablesContext context) : base(context) { } public virtual CatalogBuilder WithGroups() { return AddQueryStep(1, (query) => { return query.Include(x => x.ColorCatalogsGroups); }); } public virtual CatalogBuilder WithItems() { return AddQueryStep(2, (query) => { return query.Include(x => x.ColorCatalogsGroups.Select(y => y.ColorCatalogsItems)); }); } public virtual CatalogBuilder WithRecipes(Rml rml = null) { return AddQueryStep(3, (query) => { if (rml != null) { return query.Include(x => x.ColorCatalogsGroups.Select(y => y.ColorCatalogsItems.Select(z => z.ColorCatalogsItemsRecipes.Where(r => r.RmlGuid == rml.Guid)))); } else { return query.Include(x => x.ColorCatalogsGroups.Select(y => y.ColorCatalogsItems.Select(z => z.ColorCatalogsItemsRecipes))); } }); } } }