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 MachineBuilder : EntityBuilderBase { public MachineBuilder(ObservablesContext context) : base(context) { } public virtual MachineBuilder WithVersion() { return AddQueryStep(1, (query) => { return query.Include(x => x.MachineVersion); }); } public virtual MachineBuilder WithOrganization() { return AddStep(1, () => { Context.Organizations.Where(x => x.Guid == Entity.OrganizationGuid) .Include(x => x.Address) .Include(x => x.Contact).FirstOrDefault(); }); } public virtual MachineBuilder WithConfiguration() { return AddStep(2, () => { new ConfigurationBuilder(Context) .Set(Entity.ConfigurationGuid) .WithIdsPacks() .WithHardwareVersion() .Build(); }); } public virtual MachineBuilder WithJobs() { return AddStep(3, () => { new JobsCollectionBuilder(Context).Set(x => x.MachineGuid == Entity.Guid).WithSegments().WithSegmentsGroups().Build(); }); } public virtual MachineBuilder WithSpools() { return AddStep(4, () => { Context.Spools.Where(x => x.MachineGuid == Entity.Guid).Include(x => x.SpoolType).ToList(); }); } public virtual MachineBuilder WithCats() { return AddStep(5, () => { Context.Cats.Where(x => x.MachineGuid == Entity.Guid).Include(x => x.LiquidType).ToList(); }); } } }