コード例 #1
0
        public void PassAllParameters()
        {
            //ARRANGE
            var rowObject1 = TestDbTypeTable.Row1;

            var parameters = new[]
            {
                new SpecifiedParameter("BigInt", rowObject1.BigInt),
                new SpecifiedParameter("Binary50", rowObject1.Binary50),
                new SpecifiedParameter("Bit", rowObject1.Bit),
                new SpecifiedParameter("Char10", rowObject1.Char10),
                new SpecifiedParameter("Date", rowObject1.Date),
                new SpecifiedParameter("DateTime", rowObject1.DateTime),
                new SpecifiedParameter("DateTime2", rowObject1.DateTime2),
                new SpecifiedParameter("DateTimeOffset", rowObject1.DateTimeOffset),
                new SpecifiedParameter("Decimal", rowObject1.Decimal),
                new SpecifiedParameter("Float", rowObject1.Float),
                new SpecifiedParameter("Image", rowObject1.Image),
                new SpecifiedParameter("Int", rowObject1.Int),
                new SpecifiedParameter("Money", rowObject1.Money),
                new SpecifiedParameter("NChar10", rowObject1.NChar10),
                new SpecifiedParameter("NText", rowObject1.NText),
                new SpecifiedParameter("Numeric", rowObject1.Numeric),
                new SpecifiedParameter("NVarchar50", rowObject1.NVarchar50),
                new SpecifiedParameter("Real", rowObject1.Real),
                new SpecifiedParameter("SmallDateTime", rowObject1.SmallDateTime),
                new SpecifiedParameter("SmallInt", rowObject1.SmallInt),
                new SpecifiedParameter("SmallMoney", rowObject1.SmallMoney),
                new SpecifiedParameter("Text", rowObject1.Text),
                new SpecifiedParameter("Time", rowObject1.Time),
                new SpecifiedParameter("TinyInt", rowObject1.TinyInt),
                new SpecifiedParameter("Uniqueidentifier", rowObject1.Uniqueidentifier),
                new SpecifiedParameter("Varbinary50", rowObject1.Varbinary50),
                new SpecifiedParameter("Varchar50", rowObject1.Varchar50),
                new SpecifiedParameter("Xml", rowObject1.Xml)
            };

            var query = _queryFactory.CreateQuery();

            //ACT
            var result = query.Select <dynamic>(ExecuteProcQuery, parameters);

            //ASSERT
            AssertSingleDynamicObjectWithSingleRow(TestDbTypeTable.Row1, result);

            query.Dispose();
        }
コード例 #2
0
        public void InvokeInTransaction_ShouldSaveData_WhenCommitTransaction()
        {
            //ARRANGE
            var query = _queryFactory.CreateQuery();

            //ACT
            query.BeginTransaction();
            query.Execute("create table #temp(id int)");
            query.Execute("insert into #temp(id) values(1)");
            query.CommitTransaction();

            //ASSERT
            int?id = query.Select <int?>("select id from #temp");

            Assert.AreEqual(1, id);

            query.Dispose();
        }
コード例 #3
0
        // APIs allowed to access the Auth server
        public static async Task <IEnumerable <ApiResource> > GetApiResources(IQueryFactory <ClientRegistration> clientRegistrationQueryFactory)
        {
            using (var query = clientRegistrationQueryFactory.CreateQuery())
            {
                var options = clientRegistrationQueryFactory.CreateQueryOptions();
                var clients = await query.Execute(options);

                return(clients.Select((clientRegistration) =>
                                      new ApiResource(clientRegistration.ScopeId, clientRegistration.ScopeName)
                                      ).Distinct().ToList());
            }
        }
コード例 #4
0
        public void PassAllParameters()
        {
            //ARRANGE
            var rowObject1 = TestDbTypeTable.Row1;
            var parameters = CreateDefiniedTypeFromRowObject(rowObject1);
            var query      = _queryFactory.CreateQuery();

            //ACT
            var result = query.Select <dynamic>(ExecuteProcQuery, parameters);

            //ASSERT
            AssertSingleDynamicObjectWithSingleRow(rowObject1, result);

            query.Dispose();
        }
コード例 #5
0
        public void PassAllParameters()
        {
            //ARRANGE
            var rowObject1 = TestDbTypeTable.Row1;

            var parameters = new object[]
            {
                rowObject1.BigInt,
                rowObject1.Binary50,
                rowObject1.Bit,
                rowObject1.Char10,
                rowObject1.Date,
                rowObject1.DateTime,
                rowObject1.DateTime2,
                rowObject1.DateTimeOffset,
                rowObject1.Decimal,
                rowObject1.Float,
                rowObject1.Image,
                rowObject1.Int,
                rowObject1.Money,
                rowObject1.NChar10,
                rowObject1.NText,
                rowObject1.Numeric,
                rowObject1.NVarchar50,
                rowObject1.Real,
                rowObject1.SmallDateTime,
                rowObject1.SmallInt,
                rowObject1.SmallMoney,
                rowObject1.Text,
                rowObject1.Time,
                rowObject1.TinyInt,
                rowObject1.Uniqueidentifier,
                rowObject1.Varbinary50,
                rowObject1.Varchar50,
                rowObject1.Xml
            };

            var query = _queryFactory.CreateQuery();

            //ACT
            var result = query.Select <dynamic>(ExecuteProcQuery, parameters);

            //ASSERT
            AssertSingleDynamicObjectWithSingleRow(TestDbTypeTable.Row1, result);

            query.Dispose();
        }
コード例 #6
0
        // Clients allowed to access resources from Auth Server
        public static async Task <IEnumerable <Client> > GetClients(IQueryFactory <ClientRegistration> clientRegistrationQueryFactory)
        {
            using (var query = clientRegistrationQueryFactory.CreateQuery())
            {
                var options = clientRegistrationQueryFactory.CreateQueryOptions();
                var clients = await query.Execute(options);

                return(clients.Select((clientRegistration) =>
                                      new Client
                {
                    ClientId = clientRegistration.ClientId,
                    AllowedGrantTypes = GrantTypes.ClientCredentials,
                    ClientSecrets =
                    {
                        new Secret(clientRegistration.ClientSecret.Sha256())
                    },
                    AllowedScopes = { clientRegistration.ScopeId }
                }
                                      ).ToList());
            }
        }
コード例 #7
0
        private IWindowView Deserialize(string persistString)
        {
            if (persistString.StartsWith(typeof(ImagesView).FullName))
            {
                var parts = persistString.Split(';');
                if (parts.Length == 1)
                {
                    var images = GetImages();
                    return(images.View);
                }
                else if (parts.Length == 2)
                {
                    // get the last query
                    var queryText = parts[1];
                    var query     = _queryCompiler.Compile(new StringReader(queryText), new NullQueryErrorListener());
                    if (query == null)
                    {
                        query = _queryFactory.CreateQuery();
                    }

                    var images = GetImages();
                    _dontShowImagesWindow = true;
                    try
                    {
                        _queryHistory.ExecuteQuery(query);
                    }
                    finally
                    {
                        _dontShowImagesWindow = false;
                    }

                    return(images.View);
                }
            }
            return(null);
        }
コード例 #8
0
 private IQueryGenerator <T> BaseQuery <T>() where T : class
 {
     return(_queryFactory.CreateQuery <T>());
 }
コード例 #9
0
 protected TQuery GetQuery <TQuery>() where TQuery : IQuery
 {
     return(_factory.CreateQuery <TQuery>());
 }
コード例 #10
0
        //----------------------------------------------------------------//

        public FeedManager(ISession session, IServiceProvider provider)
        {
            _commandFactory = provider.GetService <ICommandFactory>();
            _queryFactory   = provider.GetService <IQueryFactory>();

            _genreCommand      = _commandFactory.CreateCommand <IGenreCommand>(session);
            _companyCommand    = _commandFactory.CreateCommand <ICompanyCommand>(session);
            _countryCommand    = _commandFactory.CreateCommand <ICountryCommand>(session);
            _peopleCommad      = _commandFactory.CreateCommand <IPeopleCommand>(session);
            _movieCommand      = _commandFactory.CreateCommand <IMovieCommand>(session);
            _castCommand       = _commandFactory.CreateCommand <ICastCommand>(session);
            _crewCommand       = _commandFactory.CreateCommand <ICrewCommand>(session);
            _jobCommand        = _commandFactory.CreateCommand <IJobCommand>(session);
            _departmentCommand = _commandFactory.CreateCommand <IDepartmentCommand>(session);

            _movieGenreCommand   = _commandFactory.CreateCommand <IMovieGenreCommand>(session);
            _movieCompanyCommand = _commandFactory.CreateCommand <IMovieCompanyCommand>(session);
            _movieCountryCommand = _commandFactory.CreateCommand <IMovieCountryCommand>(session);

            _movieCountryQuery = _queryFactory.CreateQuery <IMovieCountryQuery>(session);
            _movieCompanyQuery = _queryFactory.CreateQuery <IMovieCompanyQuery>(session);
            _movieGenreQuery   = _queryFactory.CreateQuery <IMovieGenreQuery>(session);

            _movieQuery      = _queryFactory.CreateQuery <IMovieQuery>(session);
            _genreQuery      = _queryFactory.CreateQuery <IGenreQuery>(session);
            _companyQuery    = _queryFactory.CreateQuery <ICompanyQuery>(session);
            _countryQuery    = _queryFactory.CreateQuery <ICountryQuery>(session);
            _castQuery       = _queryFactory.CreateQuery <ICastQuery>(session);
            _crewQuery       = _queryFactory.CreateQuery <ICrewQuery>(session);
            _peopleQuery     = _queryFactory.CreateQuery <IPeopleQuery>(session);
            _jobQuery        = _queryFactory.CreateQuery <IJobQuery>(session);
            _departmentQuery = _queryFactory.CreateQuery <IDepartmentQuery>(session);

            _loadDataService = provider.GetRequiredService <ILoadDataService>();
        }
コード例 #11
0
        public void PassAllParameters()
        {
            //ARRANGE
            var rowObject1 = TestDbTypeTable.Row1;

            var dataTable = new DataTable();

            dataTable.Columns.Add("BigInt", typeof(long));
            dataTable.Columns.Add("Binary50", typeof(byte[]));
            dataTable.Columns.Add("Bit", typeof(bool));
            dataTable.Columns.Add("Char10", typeof(string));
            dataTable.Columns.Add("Date", typeof(DateTime));
            dataTable.Columns.Add("DateTime", typeof(DateTime));
            dataTable.Columns.Add("DateTime2", typeof(DateTime));
            dataTable.Columns.Add("DateTimeOffset", typeof(DateTimeOffset));
            dataTable.Columns.Add("Decimal", typeof(decimal));
            dataTable.Columns.Add("Float", typeof(double));
            dataTable.Columns.Add("Image", typeof(byte[]));
            dataTable.Columns.Add("Int", typeof(int));
            dataTable.Columns.Add("Money", typeof(decimal));
            dataTable.Columns.Add("NChar10", typeof(string));
            dataTable.Columns.Add("NText", typeof(string));
            dataTable.Columns.Add("Numeric", typeof(decimal));
            dataTable.Columns.Add("NVarchar50", typeof(string));
            dataTable.Columns.Add("Real", typeof(float));
            dataTable.Columns.Add("SmallDateTime", typeof(DateTime));
            dataTable.Columns.Add("SmallInt", typeof(short));
            dataTable.Columns.Add("SmallMoney", typeof(decimal));
            dataTable.Columns.Add("Text", typeof(string));
            dataTable.Columns.Add("Time", typeof(TimeSpan));
            dataTable.Columns.Add("TinyInt", typeof(byte));
            dataTable.Columns.Add("Uniqueidentifier", typeof(Guid));
            dataTable.Columns.Add("Varbinary50", typeof(byte[]));
            dataTable.Columns.Add("Varchar50", typeof(string));
            dataTable.Columns.Add("Xml", typeof(string));

            dataTable.Rows.Add(new object[]
            {
                rowObject1.BigInt,
                rowObject1.Binary50,
                rowObject1.Bit,
                rowObject1.Char10,
                rowObject1.Date,
                rowObject1.DateTime,
                rowObject1.DateTime2,
                rowObject1.DateTimeOffset,
                rowObject1.Decimal,
                rowObject1.Float,
                rowObject1.Image,
                rowObject1.Int,
                rowObject1.Money,
                rowObject1.NChar10,
                rowObject1.NText,
                rowObject1.Numeric,
                rowObject1.NVarchar50,
                rowObject1.Real,
                rowObject1.SmallDateTime,
                rowObject1.SmallInt,
                rowObject1.SmallMoney,
                rowObject1.Text,
                rowObject1.Time,
                rowObject1.TinyInt,
                rowObject1.Uniqueidentifier,
                rowObject1.Varbinary50,
                rowObject1.Varchar50,
                rowObject1.Xml
            });

            var query = _queryFactory.CreateQuery();

            //ACT
            var result = query.Select <dynamic>(ExecuteProcQuery, dataTable);

            //ASSERT
            AssertSingleDynamicObjectWithSingleRow(TestDbTypeTable.Row1, result);

            query.Dispose();
        }
コード例 #12
0
ファイル: QueryCompiler.cs プロジェクト: trylock/viewer
        public void ExitSource(QueryParser.SourceContext context)
        {
            string viewIdentifier      = null;
            var    viewIdentifierToken = context.ID();

            if (viewIdentifierToken != null)
            {
                viewIdentifier = viewIdentifierToken.Symbol.Text;
            }
            else
            {
                viewIdentifierToken = context.COMPLEX_ID();
                if (viewIdentifierToken != null)
                {
                    viewIdentifier = ParseComplexIdentifier(viewIdentifierToken.Symbol);
                }
            }

            // create a query SELECT view
            if (viewIdentifier != null)
            {
                // if there is a cycle, report it and halt
                if (ReportCycle(
                        viewIdentifierToken.Symbol.Line,
                        viewIdentifierToken.Symbol.Column,
                        viewIdentifier))
                {
                    return;
                }

                // otherwise, compile the view
                var view = _compiler.Views.Find(viewIdentifier);
                if (view == null)
                {
                    ReportError(
                        viewIdentifierToken.Symbol.Line,
                        viewIdentifierToken.Symbol.Column,
                        $"Unknown view '{viewIdentifier}'");
                    return;
                }

                // compile view
                var query = _compiler.Compile(
                    new StringReader(view.Text),
                    _errorListener,
                    _parameters.Create(view.Name)) as IQuery;

                if (query == null) // compilation of the view failed
                {
                    HaltCompilation();
                    return;
                }

                _queries.Push(query.View(viewIdentifier));
            }
            else if (context.STRING() != null) // create a query SELECT pattern
            {
                var patternSymbol = context.STRING().Symbol;
                var pattern       = ParseStringValue(patternSymbol);

                try
                {
                    var query = _queryFactory.CreateQuery(pattern) as IQuery;
                    _queries.Push(query);
                }
                catch (ArgumentException) // invalid pattern
                {
                    ReportError(
                        patternSymbol.Line,
                        patternSymbol.Column,
                        $"Invalid path pattern: {pattern}");
                }
            }

            // otherwise, this is a subquery => it will push its own tree to the stack
        }
コード例 #13
0
 private void View_OpenDirectory(object sender, DirectoryEventArgs e)
 {
     _state.ExecuteQuery(_queryFactory.CreateQuery(e.FullPath));
 }