aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/Tango.BL/Builders
diff options
context:
space:
mode:
authorRoy Ben-Shabat <Roy@Twine-s.com>2020-02-26 18:43:43 +0200
committerRoy Ben-Shabat <Roy@Twine-s.com>2020-02-26 18:43:43 +0200
commit8e5ab17ced647a8c9fbba764c6fa0c06d56269c9 (patch)
tree4d958c4775ac237f5d67803192aa530a80d978b7 /Software/Visual_Studio/Tango.BL/Builders
parentafb6bbb2123932b3562e1af993eb847d8147bf58 (diff)
parent228dca3384369f23d6dcad6a696cf491ab9d8840 (diff)
downloadTango-8e5ab17ced647a8c9fbba764c6fa0c06d56269c9.tar.gz
Tango-8e5ab17ced647a8c9fbba764c6fa0c06d56269c9.zip
Merge branch 'master' of https://twinetfs.visualstudio.com/_git/Tango
Diffstat (limited to 'Software/Visual_Studio/Tango.BL/Builders')
-rw-r--r--Software/Visual_Studio/Tango.BL/Builders/JobRunsBuilder.cs19
-rw-r--r--Software/Visual_Studio/Tango.BL/Builders/JobRunsCollectionBuilder.cs86
2 files changed, 86 insertions, 19 deletions
diff --git a/Software/Visual_Studio/Tango.BL/Builders/JobRunsBuilder.cs b/Software/Visual_Studio/Tango.BL/Builders/JobRunsBuilder.cs
deleted file mode 100644
index ca755a04c..000000000
--- a/Software/Visual_Studio/Tango.BL/Builders/JobRunsBuilder.cs
+++ /dev/null
@@ -1,19 +0,0 @@
-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 JobRunsBuilder : EntityBuilderBase<JobRun, JobRunsBuilder>
- {
- public JobRunsBuilder(ObservablesContext context) : base(context)
- {
-
- }
-
- }
-}
diff --git a/Software/Visual_Studio/Tango.BL/Builders/JobRunsCollectionBuilder.cs b/Software/Visual_Studio/Tango.BL/Builders/JobRunsCollectionBuilder.cs
new file mode 100644
index 000000000..a1990c9ea
--- /dev/null
+++ b/Software/Visual_Studio/Tango.BL/Builders/JobRunsCollectionBuilder.cs
@@ -0,0 +1,86 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using Tango.BL.Entities;
+using System.Data.Entity;
+using Tango.BL.Enumerations;
+
+namespace Tango.BL.Builders
+{
+ public class JobRunsCollectionBuilder : EntityCollectionBuilderBase<JobRun, JobRunsCollectionBuilder>
+ {
+ public JobRunsCollectionBuilder(ObservablesContext context) : base(context)
+ {
+
+ }
+
+ public virtual JobRunsCollectionBuilder WithMachines(List<Machine> machines)
+ {
+ return AddQueryStep(1, (query) =>
+ {
+ if (machines != null && machines.Count > 0)
+ {
+ var machineIDs = new HashSet<string>(machines.Select(p => p.Guid));
+ return query.Where(x => machineIDs.Contains(x.MachineGuid));
+ }
+ return query;
+ });
+ }
+
+ public virtual JobRunsCollectionBuilder WithJobSource(IEnumerable<JobSource> source)
+ {
+ return AddQueryStep(2, (query) =>
+ {
+ if(source.Count() > 0)
+ {
+ int[] jobRunSourceArr = source.Select(x => (int)x).ToArray();
+ return query.Where(x => jobRunSourceArr.Contains(x.JobSource));
+ }
+ return query;
+
+ });
+ }
+
+ public virtual JobRunsCollectionBuilder WithJobStatus(IEnumerable<JobRunStatus> status)
+ {
+ return AddQueryStep(3, (query) =>
+ {
+ if(status.Count() > 0)
+ {
+ int[] jobRunStatusArr = status.Select(x => (int)x).ToArray();
+
+ return query.Where(x => jobRunStatusArr.Contains(x.Status));
+ }
+ return query;
+
+ });
+ }
+
+ public virtual JobRunsCollectionBuilder WithGradient(IEnumerable<bool> isGradient)
+ {
+ return AddQueryStep(4, (query) =>
+ {
+ if(isGradient.Count() > 0)
+ {
+ bool[] isGradientArr = isGradient.Select(x => (bool)x).ToArray();
+ return query.Where(x => isGradientArr.Contains(x.IsGradient));
+ }
+ return query;
+ });
+ }
+
+ public virtual JobRunsCollectionBuilder WithRmls(List<String> rmlGuids)
+ {
+ return AddQueryStep(5, (query) =>
+ {
+ if (rmlGuids != null && rmlGuids.Count > 0)
+ {
+ return query.Where(x => rmlGuids.Contains(x.RmlGuid));
+ }
+ return query;
+ });
+ }
+ }
+}