public List <int> GetTurbinesPerAggregation(List <Turbine> turbines, TurbineAggregation turbineAggregation) { var turbinesPerAggregation = new List <int>(); switch (turbineAggregation) { case TurbineAggregation.All: { turbinesPerAggregation = turbines.Select(t => t.Id).Take(5).ToList(); // Taking first five for simulation purpose break; } case TurbineAggregation.Any: { turbinesPerAggregation = turbines.Skip(5).Take(3).Select(t => t.Id).ToList(); // Taking between the sixth and eighth for simulation purpose break; } case TurbineAggregation.Single: { turbinesPerAggregation = turbines.Skip(8).Select(t => t.Id).ToList(); // Taking last two for simulation purpose break; } } return(turbinesPerAggregation); }
public void AddRule(TurbineAggregation turbineAggregation) { rules.Add(new Rule() { TurbineIds = _turbineAggregationService.GetTurbinesPerAggregation(turbines, turbineAggregation), TurbineAggregation = turbineAggregation, ForbiddenEvents = events.Take(2).Select(e => e.Id).ToList(), // Taking first two for simulation purpose RequiredEvents = events.Take(5).Select(e => e.Id).ToList(), // Taking first five for simulation purpose Diagnosis = "Diagnosis for " + turbineAggregation.ToString() + " rule" }); }