public void Process(PipelineItem item)
        {
            var          services = item.Direction == PipelineDirection.In ? _inServices : _outServices;
            PipelineItem result   = item;

            foreach (var service in services)
            {
                service.Process(result);
                result = service.Result;
                if (result.StatusResult.Status == PipelineItemStatus.Fail)
                {
                    throw new PipelineException(result.StatusResult.Message);
                }
                else if (result.StatusResult.Status == PipelineItemStatus.Drop)
                {
                    break;
                }
            }

            if (item.StatusResult.Status == PipelineItemStatus.Success)
            {
                if (result.Direction == PipelineDirection.In)
                {
                    _inRequest.OnNext(item.Data as IModel);
                }
                else if (result.Direction == PipelineDirection.Out)
                {
                    _outRequest.OnNext(item.Data as string);
                }
            }
        }
Beispiel #2
0
 public void Process(PipelineItem item)
 {
     throw new NotImplementedException();
 }