public IResultSetResolver Instantiate(ResultSetResolverArgs args)
        {
            if (args is ContentResultSetResolverArgs)
            {
                return(new ContentResultSetResolver(args as ContentResultSetResolverArgs));
            }
            else if (args is RowsResultSetResolverArgs)
            {
                return(new RowsResultSetResolver(args as RowsResultSetResolverArgs));
            }
            else if (args is QueryResultSetResolverArgs)
            {
                return(new QueryResultSetResolver(args as QueryResultSetResolverArgs));
            }
            else if (args is CsvResultSetResolverArgs)
            {
                return(new CsvResultSetResolver(args as CsvResultSetResolverArgs));
            }
            else if (args is XPathResultSetResolverArgs)
            {
                return(new XPathResultSetResolver(args as XPathResultSetResolverArgs));
            }
            else if (args is ObjectsResultSetResolverArgs)
            {
                return(new ObjectsResultSetResolver(args as ObjectsResultSetResolverArgs));
            }

            throw new ArgumentOutOfRangeException($"Type '{args.GetType().Name}' is not expected when building a ResultSet");
        }
Exemple #2
0
        public IResultSetResolver Instantiate(ResultSetResolverArgs args)
        {
            switch (args)
            {
            case ContentResultSetResolverArgs x: return(new ContentResultSetResolver(x));

            case RowsResultSetResolverArgs x: return(new RowsResultSetResolver(x));

            case QueryResultSetResolverArgs x: return(new QueryResultSetResolver(x, serviceLocator));

            case FlatFileResultSetResolverArgs x: return(new FlatFileResultSetResolver(x, serviceLocator));

            case DataSerializationResultSetResolverArgs x: return(new DataSerializationResultSetResolver(x));

            case ObjectsResultSetResolverArgs x: return(new ObjectsResultSetResolver(x));

            case SequenceCombinationResultSetResolverArgs x: return(new SequenceCombinationResultSetResolver(x));

            case EmptyResultSetResolverArgs x: return(new EmptyResultSetResolver(x));

            case IfUnavailableResultSetResolverArgs x: return(new IfUnavailableResultSetResolver(x));

            default: throw new ArgumentOutOfRangeException($"Type '{args.GetType().Name}' is not expected when building a result-set");
            }
        }
        public void Build()
        {
            if (!isSetup)
            {
                throw new InvalidOperationException();
            }

            if (obj is ResultSetSystemXml)
            {
                //ResultSet (external CSV file)
                if (!string.IsNullOrEmpty((obj as ResultSetSystemXml).File))
                {
                    args = BuildCsvResolverArgs((obj as ResultSetSystemXml).File);
                }
                //Query
                else if ((obj as ResultSetSystemXml).Query != null)
                {
                    args = BuildQueryResolverArgs((obj as ResultSetSystemXml).Query);
                }
                //ResultSet (embedded)
                else if ((obj as ResultSetSystemXml).Rows != null)
                {
                    args = BuildEmbeddedResolverArgs((obj as ResultSetSystemXml).Content);
                }
            }

            if (obj is ResultSetXml)
            {
                //ResultSet (external CSV file)
                if (!string.IsNullOrEmpty((obj as ResultSetXml).File))
                {
                    args = BuildCsvResolverArgs((obj as ResultSetXml).File);
                }
                //ResultSet (embedded)
                else if ((obj as ResultSetXml).Rows != null)
                {
                    args = BuildEmbeddedResolverArgs((obj as ResultSetXml).Content);
                }
            }

            if (obj is QueryXml)
            {
                args = BuildQueryResolverArgs((obj as QueryXml));
            }

            if (obj is XmlSourceXml)
            {
                args = BuildXPathResolverArgs((obj as XmlSourceXml));
            }

            if (args == null)
            {
                throw new ArgumentException();
            }
        }
 public ProjectionResultSetScalarResolverArgs(Func <ResultSet.ResultSet, object> projection, ResultSetResolverArgs resultSetArgs)
 {
     Projection    = projection;
     ResultSetArgs = resultSetArgs;
 }
Exemple #5
0
 public RowCountResultSetScalarResolverArgs(ResultSetResolverArgs resultSetArgs)
     : base((ResultSet.ResultSet rs) => rs.Rows.Count, resultSetArgs)
 {
 }