Beispiel #1
0
        public bool Process(IDataItemWrapper <TDataItem> wrapper)
        {
            if (!_state.NeedToContinue(wrapper))
            {
                return(false);
            }
            Exception exception;

            if (!TrySafeExecute(() =>
            {
                _driver.Process(wrapper);
                if (_nodeDefinition.SingleCall)
                {
                    wrapper.Exclude();
                }
            }, out exception))
            {
                WrapException(wrapper, exception);
            }
            _state.IsExcluded = wrapper.GetAndResetExclude();
            if (wrapper.IsStopped)
            {
                _state.IsStopped = true;
                if (!TrySafeExecute(() => _driver.Commit(), out exception))
                {
                    WrapCommitException(wrapper, exception);
                }
            }
            _state.LastNumber = wrapper.Number;
            return(true);
        }
Beispiel #2
0
        public bool Step(IDataItemWrapper <TDataItem> dataItemWrapper)
        {
            SetNumber(dataItemWrapper);
            var root = _provider.GetRoot();

            return(DoStep(dataItemWrapper, root));
        }
Beispiel #3
0
 public void Process(IDataItemWrapper <FileMoverData> item)
 {
     if (_streamWriter == null)
     {
         _streamWriter = new StreamWriter(new FileStream(_filePath, FileMode.Create, FileAccess.Write));
     }
     _streamWriter.WriteLine(item.Item.Number);
 }
 public void Process(IDataItemWrapper <SourceContext> item)
 {
     _sourceReader.Read(item.Item);
     if (_sourceReader.IsEnd)
     {
         item.Stop();
     }
 }
Beispiel #5
0
 public void Run()
 {
     _current = new DataItemWrapper <TDataItem>();
     while (Step(_current))
     {
         _current.Reset();
     }
 }
Beispiel #6
0
 public void Process(IDataItemWrapper <string> item)
 {
     _messages.Add($"Data{_counter++}");
     Trace.WriteLine(_messages.Last());
     if (_counter == 3)
     {
         item.Stop();
     }
 }
Beispiel #7
0
 private static void SetNumber(IDataItemWrapper <TDataItem> dataItemWrapper)
 {
     if (dataItemWrapper.Number.HasValue)
     {
         dataItemWrapper.Number++;
     }
     else
     {
         dataItemWrapper.Number = 0;
     }
 }
Beispiel #8
0
 public void Process(IDataItemWrapper <FileMoverData> item)
 {
     if (_streamWriter == null)
     {
         _streamWriter = new StreamWriter(new FileStream(_filePath, FileMode.Create, FileAccess.Write));
     }
     if (item.Exceptions.Any())
     {
         _streamWriter.WriteLine(item.Item.StringNumber);
         item.Skip();
     }
 }
Beispiel #9
0
        public void Process(IDataItemWrapper <FileMoverData> item)
        {
            if (_streamReader == null)
            {
                _streamReader = new StreamReader(new FileStream(_filePath, FileMode.Open, FileAccess.Read));
            }
            var line = _streamReader.ReadLine();

            item.Item = new FileMoverData();
            item.Item.StringNumber = line;
            item.Item.Number       = int.Parse(line);
            if (_streamReader.EndOfStream)
            {
                item.Stop();
            }
        }
Beispiel #10
0
        private bool DoStep(IDataItemWrapper <TDataItem> dataItemWrapper, NodeDefinition nodeDefinition)
        {
            if (nodeDefinition.RunOver && !_excludeSubTree)
            {
                RunOnSubTree(nodeDefinition.Name);
                return(true);
            }
            var node = _registry.GetNode(nodeDefinition.Name);

            bool isOver = false;

            foreach (var dependsOn in nodeDefinition.DependsOn)
            {
                var next = _provider.GetByName(dependsOn);
                isOver |= DoStep(dataItemWrapper, next);
            }
            isOver |= node.Process(dataItemWrapper);

            return(isOver);
        }
Beispiel #11
0
 public void Process(IDataItemWrapper <SourceContext> item)
 {
     _transformer.Transform(item.Item);
 }
Beispiel #12
0
 private void WrapCommitException(IDataItemWrapper <TDataItem> wrapper, Exception exception)
 {
     wrapper.SetCommitException(exception, _nodeDefinition.Name);
 }
Beispiel #13
0
 public void Process(IDataItemWrapper <string> item)
 {
     _messages.Add("LastCall");
     Trace.WriteLine(_messages.Last());
 }
Beispiel #14
0
 public bool NeedToContinue(IDataItemWrapper <TDataItem> wrapper)
 {
     return(!IsStopped && LastNumber != wrapper.Number && !IsExcluded && !wrapper.IsSkipped);
 }
Beispiel #15
0
 public void Process(IDataItemWrapper <SourceContext> item)
 {
     _schemator.Schema(item.Item);
 }
Beispiel #16
0
 public void Process(IDataItemWrapper <SourceContext> item)
 {
     _filterer.Filter(item.Item);
 }
Beispiel #17
0
 public void Process(IDataItemWrapper <SourceContext> item)
 {
     item.Item = new SourceContext();
 }
Beispiel #18
0
 public void Process(IDataItemWrapper <string> item)
 {
     _processAction(item);
 }
Beispiel #19
0
 public void Process(IDataItemWrapper <SourceContext> item)
 {
     _cleanuper.Cleanup(item.Item);
 }
 public void Process(IDataItemWrapper <SourceContext> item)
 {
     _sourceWriter.Write(item.Item);
 }