/// <summary>Add a 'SimulationName=' clause to filter using a descriptor.</summary> /// <param name="filter">Filter to add to.</param> /// <param name="descriptor">The descriptor to use to create the filter.</param> /// <param name="simulationDescriptions">Complete list of simulation descriptions.</param> private string AddSimulationNameClauseToFilter(string filter, SimulationDescription.Descriptor descriptor, List <SimulationDescription> simulationDescriptions) { var simulationNames = simulationDescriptions.FindAll(sim => sim.HasDescriptor(descriptor)).Select(sim => sim.Name); return(AddToFilter(filter, "SimulationName IN (" + StringUtilities.Build(simulationNames, ",", "'", "'") + ")")); }
/// <summary> /// Check if the given descriptor is needed by the series definition. /// </summary> /// <param name="descriptor">The descriptor to be checked.</param> private bool NeedsDescriptor(SimulationDescription.Descriptor descriptor) { // We need a simulation name descriptor if any child event names // on graph components exist and require it. // todo: should probably add this into the IGraphable interface. if (descriptor.Name == "SimulationName") { EventNamesOnGraph events = FindChild <EventNamesOnGraph>(); if (events != null && !string.IsNullOrEmpty(events.SimulationName)) { return(true); } } return(false); }