public void Build() { if (!isSetup) { throw new InvalidOperationException(); } var connectionString = queryXml.GetConnectionString(); var parameters = BuildParameters(queryXml.GetParameters()); var variables = queryXml.GetVariables(); var timeout = queryXml.Timeout; if (!string.IsNullOrEmpty(queryXml.InlineQuery)) { args = new EmbeddedQueryResolverArgs(queryXml.InlineQuery , connectionString, parameters, variables, timeout); } else if (!string.IsNullOrEmpty(queryXml.File)) { var file = GetFullPath(settingsXml?.BasePath, queryXml.File); args = new ExternalFileQueryResolverArgs(file , connectionString, parameters, variables, timeout); } else if (queryXml.Assembly != null) { var file = GetFullPath(settingsXml?.BasePath, queryXml.Assembly.Path); args = new AssemblyQueryResolverArgs( file, queryXml.Assembly.Klass, queryXml.Assembly.Method, queryXml.Assembly.Static, queryXml.Assembly.GetMethodParameters() , connectionString, parameters, variables, timeout); } else if (queryXml.Report != null) { var path = string.IsNullOrEmpty(queryXml.Report.Source) ? settingsXml.BasePath + queryXml.Report.Path : queryXml.Report.Path; args = new ReportDataSetQueryResolverArgs( queryXml.Report.Source, path, queryXml.Report.Name, queryXml.Report.Dataset , connectionString, parameters, variables, timeout); } else if (queryXml.SharedDataset != null) { var path = string.IsNullOrEmpty(queryXml.SharedDataset.Source) ? settingsXml.BasePath + queryXml.SharedDataset.Path : queryXml.SharedDataset.Path; args = new SharedDataSetQueryResolverArgs( queryXml.SharedDataset.Source, queryXml.SharedDataset.Path, queryXml.SharedDataset.Name , connectionString, parameters, variables, timeout); } if (args == null) { throw new ArgumentException(); } }
protected ResultSet GetResultSet(IQuery query) { var argsQuery = new QueryResolverArgs(query.Statement, query.ConnectionString, query.Parameters, query.TemplateTokens, query.Timeout, query.CommandType); var args = new QueryResultSetResolverArgs(argsQuery); var factory = new ResultSetResolverFactory(null); var resolver = factory.Instantiate(args); return(resolver.Execute()); }
protected virtual IResultSetService InstantiateSystemUnderTest(ExecutionXml executionXml) { var commandFactory = new CommandProvider(); var argsBuilder = new QueryResolverArgsBuilder(ServiceLocator); var connectionString = executionXml.Item.GetConnectionString(); var statement = (executionXml.Item as QueryableXml).GetQuery(); IEnumerable <IQueryParameter> parameters = null; IEnumerable <IQueryTemplateVariable> templateVariables = null; int timeout = 0; var commandType = CommandType.Text; if (executionXml.BaseItem is QueryXml) { parameters = argsBuilder.BuildParameters(((QueryXml)executionXml.BaseItem).GetParameters()); templateVariables = ((QueryXml)executionXml.BaseItem).GetTemplateVariables(); timeout = ((QueryXml)executionXml.BaseItem).Timeout; } if (executionXml.BaseItem is ReportXml) { parameters = argsBuilder.BuildParameters(((ReportXml)executionXml.BaseItem).GetParameters()); } if (executionXml.BaseItem is ReportXml) { commandType = ((ReportXml)executionXml.BaseItem).GetCommandType(); } var queryArgs = new QueryResolverArgs(statement, connectionString, parameters, templateVariables, new TimeSpan(0, 0, timeout), commandType); var args = new QueryResultSetResolverArgs(queryArgs); var factory = ServiceLocator.GetResultSetResolverFactory(); var resolver = factory.Instantiate(args); var builder = new ResultSetServiceBuilder(); builder.Setup(resolver); var service = builder.GetService(); return(service); }
protected virtual IQuery GetQuery(ExecutionXml executionXml) { var commandFactory = ServiceLocator.GetCommandFactory(); var connectionString = executionXml.Item.GetConnectionString(); var commandText = (executionXml.Item as QueryableXml).GetQuery(); IEnumerable <IQueryParameter> parameters = null; IEnumerable <IQueryTemplateVariable> variables = null; var commandType = CommandType.Text; int timeout = 0; if (executionXml.BaseItem is QueryXml) { var builder = new QueryResolverArgsBuilder(ServiceLocator); parameters = builder.BuildParameters(((QueryXml)executionXml.BaseItem).GetParameters()); variables = ((QueryXml)executionXml.BaseItem).GetVariables(); timeout = ((QueryXml)executionXml.BaseItem).Timeout; } if (executionXml.BaseItem is ReportXml) { var builder = new QueryResolverArgsBuilder(ServiceLocator); parameters = builder.BuildParameters(((ReportXml)executionXml.BaseItem).GetParameters()); } if (executionXml.BaseItem is ReportXml) { commandType = ((ReportXml)executionXml.BaseItem).GetCommandType(); } var queryArgs = new QueryResolverArgs(commandText, connectionString, parameters, variables, new TimeSpan(0, 0, timeout), commandType); var factory = ServiceLocator.GetQueryResolverFactory(); var resolver = factory.Instantiate(queryArgs); var query = resolver.Execute(); return(query); }
public QueryScalarResolverArgs(QueryResolverArgs args) { this.QueryArgs = args; }
public QueryResultSetResolverArgs(QueryResolverArgs args) { QueryResolverArgs = args; }