/// <summary> /// Находит последнюю стадию с указанным клюём, присутствующую на участке после последнего брейкпоинта. /// Метод вынесен сюда, потому что реально часто будет использоваться. /// </summary> public static SimpleKeyStage <T> GetLastKeystage(PipelineEngine engine, string key) { return ((from en in engine.Stages where en is SimpleKeyStage <T> && (en as SimpleKeyStage <T>).Key == key select en as SimpleKeyStage <T>).FirstOrDefault()); }
/// <summary> /// Находит или создаёт последнюю стадию с указанным клюём, присутствующую на участке после последнего брейкпоинта. /// Метод вынесен сюда, потому что реально часто будет использоваться. /// </summary> public static SimpleKeyStage <T> GetOrCreateLastKeystage(PipelineEngine engine, T model, Rule <T> producer, string key) { foreach (var en in engine.Stages.Where(en => en is SimpleKeyStage <T> && (en as SimpleKeyStage <T>).Key == key)) { return(en as SimpleKeyStage <T>); } return(new SimpleKeyStage <T>(engine, model, producer) { Key = key }); }
/// <summary> /// Создать новую ключевую точку, пофиг была такая уже раньше или нет. /// </summary> /// <param name="engine"></param> /// <param name="producer"></param> /// <param name="key"></param> /// <param name="model"></param> /// <returns></returns> public static SimpleKeyStage <T> CreateKeystage(PipelineEngine engine, T entity, Rule <T> producer, string key) => new SimpleKeyStage <T>(engine, entity, producer) { Key = key };
public SimpleKeyStage(PipelineEngine engine, T entity, Rule <T> rule) : base(engine, entity, rule) { }
protected PipelineStage(PipelineEngine engine, T entity, IRule rule) : base(engine, entity, rule) { }