blob: a1990c9ea578866bdc8060f15032df1134223400 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
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;
});
}
}
}
|