/// <summary> /// Обработка обратного прохода. /// </summary> /// <param name="args">Аргумент прохода по трубопроводу.</param> /// <returns>Аргумент прохода по трубопроводу.</returns> public BypassedArgument ReverseBypass(BypassedArgument args) { args.Add(_component.Name, _component.Level); foreach (Component child in _component.Children) args = child.ReverseBypass(args); return args; }
/// <summary> /// Обработка обратного прохода с поднятием данных для прямого прохода. /// </summary> /// <remarks>Метод необходим для обработки дочерних узлов в прямом проходе, /// для соблюдения порядка вложенности.</remarks> /// <param name="args">Аргумент прохода по трубопроводу.</param> /// <returns>Аргумент прохода по трубопроводу.</returns> public BypassedArgument RiseDirectBypass(BypassedArgument args) { foreach (Component child in _component.Children) args = child.RiseDirectBypass(args); args.Add(_component.Name, _component.Level); return args; }
/// <summary> /// Обработка прямого прохода. /// </summary> /// <param name="args">Аргумент прохода по трубопроводу.</param> /// <returns>Аргумент прохода по трубопроводу.</returns> public BypassedArgument DirectBypass(BypassedArgument args) { args.Add(_component.Name, _component.Level); return args; }