using System; using System.Collections.Generic; using System.Linq; using System.Linq.Expressions; using System.Text; using System.Threading.Tasks; using Tango.BL.Entities; using System.Data.Entity; namespace Tango.BL.Builders { public class JobBuilder : EntityBuilderBase { public JobBuilder(ObservablesContext context) : base(context) { } protected override IQueryable OnSetQuery(IQueryable query) { return query. Include(x => x.Machine). Include(x => x.Rml). Include(x => x.ColorSpace). Include(x => x.SpoolType). Include(x => x.Customer). Include(x => x.WindingMethod); } public virtual JobBuilder WithSegments() { return AddStep(1, () => { Context.Segments.Where(x => x.JobGuid == Entity.Guid).Include(x => x.SegmentsGroup).OrderBy(x => x.SegmentIndex).ToList(); }); } public virtual JobBuilder WithBrushStops() { return AddStep(2, () => { Context.BrushStops.Where(x => x.Segment.JobGuid == Entity.Guid).Include(x => x.ColorSpace).Include(x => x.ColorCatalogsItem).OrderBy(x => x.StopIndex).ToList(); }); } public virtual JobBuilder WithConfiguration() { return AddStep(3, () => { new MachineBuilder(Context).Set(Entity.MachineGuid).WithSpools().Build(); new ConfigurationBuilder(Context) .Set(Entity.Machine.ConfigurationGuid) .WithIdsPacks().Build(); }); } public virtual JobBuilder WithRML(List cctCache = null) { return AddStep(4, () => { new RmlBuilder(Context). Set(Entity.RmlGuid). WithActiveParametersGroup(). WithCctCache(cctCache). WithCCT(). WithGbdAndLub(). WithCAT(Entity.MachineGuid). WithSpools(). WithLiquidFactors().Build(); }); } public virtual JobBuilder WithUser() { return AddStep(5, () => { new UserBuilder(Context).Set(Entity.UserGuid).Build(); }); } public virtual JobBuilder WithJobRuns() { return AddStep(6, () => { Context.JobRuns.Where(x => x.JobGuid == Entity.Guid).OrderBy(x => x.StartDate).ToList(); }); } public virtual JobBuilder WithSegmentsGroups() { return AddStep(7, () => { Context.SegmentsGroups.Where(x => x.JobGuid == Entity.Guid).OrderBy(x => x.SegmentIndex).ToList(); }); } } }