示例#1
0
        public override Dictionary <string, string> Extract(ParameterContext ctx)
        {
            var result = _next?.Extract(ctx);

            if (result == null)
            {
                result = new Dictionary <string, string>();
            }

            XmlNode selectedNode;

            switch (_options.FileType)
            {
            case ExtractFileType.Input:
                selectedNode = ctx.XmlRootInput.SelectSingleNode(_options.XPath);
                break;

            case ExtractFileType.Output:
                selectedNode = ctx.XmlRootOutput.SelectSingleNode(_options.XPath);
                break;

            default:
                throw new Exception("Данный тип файла не поддерживается.");
            }

            var value =
                selectedNode == null ?
                null : selectedNode.NodeType != XmlNodeType.Attribute ?
                selectedNode.InnerText : selectedNode.Value;

            value = string.IsNullOrEmpty(value) ? _options.DefaultValue : value;

            result.Add(_options.ParameterName, value);
            return(result);
        }
        public override Dictionary <string, string> Extract(ParameterContext ctx)
        {
            var result = _next?.Extract(ctx);

            if (result == null)
            {
                result = new Dictionary <string, string>();
            }

            result.Add(_options.ParameterName, DateTime.Now.ToString(_options.Format));
            return(result);
        }
示例#3
0
        public override Dictionary <string, string> Extract(ParameterContext ctx)
        {
            var result = _next?.Extract(ctx);

            if (result == null)
            {
                result = new Dictionary <string, string>();
            }

            int paramNumber = 0;

            string fileName;

            switch (_options.FileType)
            {
            case ExtractFileType.Input:
                fileName = ctx.AppContext.InputFile.FileName;
                break;

            case ExtractFileType.Output:
                fileName = ctx.AppContext.OutputFile.FileName;
                break;

            default:
                throw new Exception("Данный тип файла не поддерживается.");
            }

            StringBuilder buffer = new StringBuilder();

            foreach (var c in fileName)
            {
                if (!_options.Separators.Contains(c))
                {
                    buffer.Append(c);
                    continue;
                }

                var parameterValue = buffer.ToString();
                parameterValue = string.IsNullOrEmpty(parameterValue) ? _options.DefaultValue : parameterValue;

                result.Add(string.Concat(_options.ParameterName, ++paramNumber), parameterValue);
                buffer.Clear();
            }
            var lastParameterValue = buffer.ToString();

            lastParameterValue = string.IsNullOrEmpty(lastParameterValue) ? _options.DefaultValue : lastParameterValue;

            result.Add(string.Concat(_options.ParameterName, ++paramNumber), lastParameterValue);

            return(result);
        }
示例#4
0
        public override Dictionary <string, string> Extract(ParameterContext ctx)
        {
            ctx.XmlRootInput  = CreateXmlElement(ctx.AppContext.InputFile.FileContent);
            ctx.XmlRootOutput = CreateXmlElement(ctx.AppContext.InputFile.FileContent);

            var result = _next?.Extract(ctx);

            if (result != null)
            {
                return(result);
            }

            return(new Dictionary <string, string>());
        }
 public override Dictionary <string, string> Extract(ParameterContext ctx)
 {
     return(new Dictionary <string, string>());
 }
示例#6
0
 public abstract Dictionary <string, string> Extract(ParameterContext ctx);