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 ConfigurationBuilder : EntityBuilderBase { public ConfigurationBuilder(ObservablesContext context) : base(context) { } protected override IQueryable OnSetQuery(IQueryable query) { return query .Include(x => x.HardwareVersion) .Include(x => x.ApplicationDisplayPanelVersion) .Include(x => x.ApplicationFirmwareVersion) .Include(x => x.ApplicationOsVersion) .Include(x => x.EmbeddedFirmwareVersion); } public virtual ConfigurationBuilder WithIdsPacks() { return AddStep(1, () => { Context.IdsPacks.Where(x => x.ConfigurationGuid == Entity.Guid) .Include(x => x.LiquidType) .Include(x => x.MidTankType) .Include(x => x.CartridgeType) .Include(x => x.Dispenser) .Include(x => x.Dispenser.DispenserType) .Include(x => x.IdsPackFormula).OrderBy(x => x.PackIndex).ToList(); }); } public virtual ConfigurationBuilder WithHardwareVersion() { return AddStep(2, () => { HardwareVersionBuilder builder = new HardwareVersionBuilder(Context); builder.Set(Entity.HardwareVersionGuid); builder.WithHardwareComponents().Build(); }); } } }