コード例 #1
0
ファイル: NDOQuery.cs プロジェクト: mirkomaty/NDO
        private IList ExecuteSubQuery(Type t, QueryContextsEntry queryContextsEntry)
        {
            IQueryGenerator queryGenerator  = ConfigContainer.Resolve <IQueryGenerator>();
            bool            hasBeenPrepared = PrepareParameters();
            string          generatedQuery;

            if (this.queryLanguage == QueryLanguage.NDOql)
            {
                generatedQuery = queryGenerator.GenerateQueryString(queryContextsEntry, this.expressionTree, this.hollowResults, this.queryContextsForTypes.Count > 1, this.orderings, this.skip, this.take);
            }
            else
            {
                generatedQuery = (string)this.expressionTree.Value;
            }

            if (hasBeenPrepared)
            {
                WriteBackParameters();
            }

            using (IPersistenceHandler persistenceHandler = this.pm.PersistenceHandlerManager.GetPersistenceHandler(t))
            {
                persistenceHandler.VerboseMode = this.pm.VerboseMode;
                persistenceHandler.LogAdapter  = this.pm.LogAdapter;
                this.pm.CheckTransaction(persistenceHandler, t);

                DataTable table = persistenceHandler.PerformQuery(generatedQuery, this.parameters, this.pm.DataSet);
                return(pm.DataTableToIList(t, table.Rows, this.hollowResults));
            }
        }
コード例 #2
0
        internal DateQueryable(IEverythingInternal everything, IQueryGenerator parent, string kind)
            : base(everything, parent)
        {
            this.searchPattern = kind;
            EverythingWrapper.FileInfoIndex fileInfoIndex;

            switch (this.searchPattern)
            {
            default:
                this.Flags    = RequestFlags.EVERYTHING_REQUEST_DATE_MODIFIED;
                fileInfoIndex = EverythingWrapper.FileInfoIndex.DateModified;
                break;

            case "dc":
                this.Flags    = RequestFlags.EVERYTHING_REQUEST_DATE_CREATED;
                fileInfoIndex = EverythingWrapper.FileInfoIndex.DateCreated;
                break;

            case "dr":
                this.Flags    = RequestFlags.EVERYTHING_REQUEST_DATE_RUN;
                fileInfoIndex = EverythingWrapper.FileInfoIndex.DateAccessed;
                break;

            case "da":
                this.Flags    = RequestFlags.EVERYTHING_REQUEST_DATE_ACCESSED;
                fileInfoIndex = EverythingWrapper.FileInfoIndex.DateAccessed;
                break;
            }

            this.IsFast = EverythingWrapper.Everything_IsFileInfoIndexed(fileInfoIndex);
        }
コード例 #3
0
ファイル: NDOQuery.cs プロジェクト: mirkomaty/NDO
        private object ExecuteAggregateQuery(QueryContextsEntry queryContextsEntry, string field, AggregateType aggregateType)
        {
            Type            t = queryContextsEntry.Type;
            IQueryGenerator queryGenerator = ConfigContainer.Resolve <IQueryGenerator>();
            string          generatedQuery = queryGenerator.GenerateAggregateQueryString(field, queryContextsEntry, this.expressionTree, this.queryContextsForTypes.Count > 1, aggregateType);

            using (IPersistenceHandler persistenceHandler = this.pm.PersistenceHandlerManager.GetPersistenceHandler(t))
            {
                persistenceHandler.VerboseMode = this.pm.VerboseMode;
                persistenceHandler.LogAdapter  = this.pm.LogAdapter;
                this.pm.CheckTransaction(persistenceHandler, t);

                // Note, that we can't execute all subQueries in one batch, because
                // the subqueries could be executed against different connections.
                // TODO: This could be optimized, if we made clear whether the involved tables
                // can be reached with the same connection.
                var l = persistenceHandler.ExecuteBatch(new string[] { generatedQuery }, this.parameters);
                if (l.Count == 0)
                {
                    return(null);
                }

                return((l[0])["AggrResult"]);
            }
        }
コード例 #4
0
        public QueryController(IQueryBuilderEngine engine)
        {
            _engine = engine;
            SetNewQuery();

            _linqGenerator = new EntityFrameworkQueryGenerator();
        }
コード例 #5
0
        public ActionResult Process(string ID, int ISLEM)
        {
            IDatabase2 db = DatabaseFactory.GetDbObject();

            IQueryGenerator gen = QueryGeneratorFactory.GetDbObject();

            gen.TableName = "comment";

            if (ISLEM == 1)
            {
                gen.AddDataParameter("APPROVED", 1);
            }
            else
            {
                gen.AddDataParameter("APPROVED", 2);
            }

            gen.FilterText = " WHERE ID=:p1";

            gen.AddFilterParameter("p1", ID);

            db.ExecuteQuery(gen.GetUpdateCommand());

            List <Comment> cList = ProcessView();

            return(View("Index", cList));
        }
コード例 #6
0
        public ActionResult ProcessArticle(int ARTICLE_ID, int ISLEM)
        {
            try
            {
                IDatabase2      db  = DatabaseFactory.GetDbObject(DbSettings.TransactionMode);
                IQueryGenerator gen = QueryGeneratorFactory.GetDbObject();

                gen.TableName = "article";

                gen.AddDataParameter("ACTIVE", ISLEM);

                gen.FilterText = "where ID=:p1";

                gen.AddFilterParameter("p1", ARTICLE_ID);

                db.ExecuteQuery(gen.GetUpdateCommand());

                db.Commit();

                return(RedirectToAction("ManageArticle"));
            }
            catch
            {
                return(RedirectToAction("ManageArticle"));
            }
        }
コード例 #7
0
 public SizeQueryable(IEverythingInternal everything, IQueryGenerator parent)
     : base(everything, parent)
 {
     this.Flags  = RequestFlags.EVERYTHING_REQUEST_SIZE;
     this.IsFast = EverythingWrapper.Everything_IsFileInfoIndexed(EverythingWrapper.FileInfoIndex.FileSize) &&
                   EverythingWrapper.Everything_IsFileInfoIndexed(EverythingWrapper.FileInfoIndex.FolderSize);
 }
コード例 #8
0
ファイル: AdoRepository.cs プロジェクト: gjdanis/orm
        protected AdoRepository(IAdoContext context, IAdoMapper <T> mapper)
        {
            Context = context;
            Mapper  = mapper;

            Uow             = context;
            _queryGenerator = context.QueryGenerator(mapper);
        }
コード例 #9
0
 public QuestChainQueryGenerator(IQuestTemplateSource questTemplateSource,
                                 IQueryGenerator queryGenerator,
                                 ISqlGenerator sqlGenerator)
 {
     this.questTemplateSource = questTemplateSource;
     this.queryGenerator      = queryGenerator;
     this.sqlGenerator        = sqlGenerator;
 }
コード例 #10
0
        private static List <Category> GetData()
        {
            IDatabase2      db  = DatabaseFactory.GetDbObject();
            IQueryGenerator gen = QueryGeneratorFactory.GetDbObject();

            gen.SelectText = "select * from category order by LABEL_TEXT";

            return(db.GetObjectList <Category>(gen.GetSelectCommandBasic()));
        }
コード例 #11
0
        protected ViewModelBase(IHistoryManager history,
                                DatabaseTableSolutionItem solutionItem,
                                ISolutionItemNameRegistry solutionItemName,
                                ISolutionManager solutionManager,
                                ISolutionTasksService solutionTasksService,
                                IEventAggregator eventAggregator,
                                IQueryGenerator queryGenerator,
                                IDatabaseTableDataProvider databaseTableDataProvider,
                                IMessageBoxService messageBoxService,
                                ITaskRunner taskRunner,
                                IParameterFactory parameterFactory,
                                ITableDefinitionProvider tableDefinitionProvider,
                                IItemFromListProvider itemFromListProvider,
                                ISolutionItemIconRegistry iconRegistry,
                                ISessionService sessionService,
                                IDatabaseTableCommandService commandService,
                                IParameterPickerService parameterPickerService,
                                IStatusBar statusBar,
                                IMySqlExecutor mySqlExecutor)
        {
            this.solutionItemName          = solutionItemName;
            this.solutionManager           = solutionManager;
            this.solutionTasksService      = solutionTasksService;
            this.queryGenerator            = queryGenerator;
            this.databaseTableDataProvider = databaseTableDataProvider;
            this.messageBoxService         = messageBoxService;
            this.taskRunner              = taskRunner;
            this.parameterFactory        = parameterFactory;
            this.tableDefinitionProvider = tableDefinitionProvider;
            this.itemFromListProvider    = itemFromListProvider;
            this.sessionService          = sessionService;
            this.commandService          = commandService;
            this.parameterPickerService  = parameterPickerService;
            this.statusBar     = statusBar;
            this.mySqlExecutor = mySqlExecutor;
            this.solutionItem  = solutionItem;
            History            = history;

            undoCommand            = new DelegateCommand(History.Undo, CanUndo);
            redoCommand            = new DelegateCommand(History.Redo, CanRedo);
            Save                   = new AsyncAutoCommand(SaveSolutionItem);
            title                  = solutionItemName.GetName(solutionItem);
            Icon                   = iconRegistry.GetIcon(solutionItem);
            nameGeneratorParameter = parameterFactory.Factory("Parameter");

            History.PropertyChanged += (_, _) =>
            {
                undoCommand.RaiseCanExecuteChanged();
                redoCommand.RaiseCanExecuteChanged();
                RaisePropertyChanged(nameof(IsModified));
            };

            tableDefinition = tableDefinitionProvider.GetDefinition(solutionItem.DefinitionId) !;
            LoadAndCreateCommands();
            nameGeneratorParameter = parameterFactory.Factory(tableDefinition.Picker);
        }
コード例 #12
0
        public EntityStore(IDbConnection connection, IQueryGenerator generator) : this()
        {
            _connection            = connection;
            _useProvidedConnection = true;

            if (generator != null)
            {
                _queryGenerator = generator;
            }
        }
コード例 #13
0
ファイル: SQE.cs プロジェクト: larais/SQE
        public static TResult GenerateCommand <TReturn, TResult>(IQueryGenerator <TReturn, TResult> qg, string input) where TReturn : class
        {
            SQEParser.ExpressionContext expressionContext = ProcessInput(input);

            var visitor = new AbstractTreeVisitor <TReturn, TResult>(qg);

            visitor.Visit(expressionContext);

            return(qg.GetResult());
        }
コード例 #14
0
        public EntityStore()
        {
            if (!EntityTypes.IsRegistered <TEntity>())
            {
                throw new Exception("You must register your type with EntityTypes before instantiating an EntityStore.");
            }

            _connectionString = ConnectionStringHelper.FindFirst();
            _queryGenerator   = new SqlServerGenerator();
        }
コード例 #15
0
ファイル: FormRepository.cs プロジェクト: JiarongGu/Vendora
        public FormRepository(IOptions <ConnectionStringsOptions> connectionStrings, IQueryGenerator queryGenerator)
            : base(connectionStrings.Value.Vendora)
        {
            _queryFactory = queryGenerator.GetFactory <Form>();

            _queryLanguage        = _queryFactory.GetColumnProperty(" = @", nameof(Form.Language));
            _queryName            = _queryFactory.GetColumnProperty(" = @", nameof(Form.Name));
            _queryOrderByCreation = $"ORDER BY {_queryFactory.GetColumn(nameof(Form.CreatedDate))}";

            SqlMapper.AddTypeHandler(typeof(FormMetadata), new JsonTypeHandler());
        }
コード例 #16
0
        private List <Article> GetAllData()
        {
            IDatabase2      db  = DatabaseFactory.GetDbObject();
            IQueryGenerator gen = QueryGeneratorFactory.GetDbObject();

            gen.SelectText = "select * from article order by INSERT_DATE desc";

            List <Article> sonuc = db.GetObjectList <Article>(gen.GetSelectCommandBasic());

            return(sonuc);
        }
コード例 #17
0
        public ActionResult AddArticle(string TITLE, string CONTENT, int[] CATEGORIES)
        {
            try
            {
                string nGuid = Guid.NewGuid().ToString("N");

                IDatabase2      db  = DatabaseFactory.GetDbObject(DbSettings.TransactionMode);
                IQueryGenerator gen = QueryGeneratorFactory.GetDbObject();

                gen.TableName = "article";

                gen.AddDataParameter("TITLE", TITLE);
                gen.AddDataParameter("TEXT", CONTENT);
                gen.AddDataParameter("INSERT_DATE", DateTime.Now);
                gen.AddDataParameter("AUTHOR", "vyigity");
                gen.AddDataParameter("ID_GUID", nGuid);

                db.ExecuteQuery(gen.GetInsertCommand());

                IQueryGenerator gen2 = QueryGeneratorFactory.GetDbObject();
                gen2.SelectText = "select ID from article where ";
                gen2.FilterText = "ID_GUID = :p1";
                gen2.AddFilterParameter("p1", nGuid);

                if (CATEGORIES != null && CATEGORIES.Length > 0)
                {
                    int id = Util.GetProperty <int>(db.GetSingleValue(gen2.GetSelectCommandBasic()));

                    foreach (int i in CATEGORIES)
                    {
                        IQueryGenerator gen3 = QueryGeneratorFactory.GetDbObject();
                        gen3.TableName = "article_category";

                        gen3.AddDataParameter("ARTICLE_ID", id);
                        gen3.AddDataParameter("CATEGORY_ID", i);

                        db.ExecuteQuery(gen3.GetInsertCommand());
                    }
                }

                db.Commit();

                ProcessView();

                return(RedirectToAction("ManageArticle"));
            }
            catch
            {
                return(RedirectToAction("Index"));
            }
        }
コード例 #18
0
        private static void FillComments(IDatabase2 db, Article article)
        {
            IQueryGenerator gen = QueryGeneratorFactory.GetDbObject();

            gen.SelectText = "select * from blog.comment c where c.APPROVED = 1 and ";
            gen.FilterText = "c.article_id = :p1 ";
            gen.SelectTail = "order by c.INSERT_DATE desc";

            gen.AddFilterParameter("p1", article.ID);

            List <Comment> cList = db.GetObjectList <Comment>(gen.GetSelectCommandBasic());

            article.COMMENTS = cList;
        }
コード例 #19
0
        public EntityStore(string connectionString, IQueryGenerator generator) : this()
        {
            _connectionString = ConnectionStringHelper.FindByName(connectionString);

            if (_connectionString == null)
            {
                throw new ArgumentException("A connection string must be specified, or there must be at least one connection string set in your configuration file.");
            }

            if (generator != null)
            {
                _queryGenerator = generator;
            }
        }
コード例 #20
0
        private Article GetData(int id)
        {
            IDatabase2      db  = DatabaseFactory.GetDbObject();
            IQueryGenerator gen = QueryGeneratorFactory.GetDbObject();

            gen.SelectText = "select * from article where ";
            gen.FilterText = "id=:p1";

            gen.AddFilterParameter("p1", id);

            Article sonuc = db.GetObject <Article>(gen.GetSelectCommandBasic());

            return(sonuc);
        }
コード例 #21
0
        private static List <Article> GetData(string searchText)
        {
            IDatabase2      db  = DatabaseFactory.GetDbObject();
            IQueryGenerator gen = QueryGeneratorFactory.GetDbObject();

            gen.SelectText = "select a.*,(select count(*) from comment c where c.article_id = a.id and c.APPROVED = 1) COMMENT_COUNT from article a where a.ACTIVE=1 and ";
            gen.FilterText = "TEXT like CONCAT('%',:p1,'%') ";
            gen.SelectTail = "order by INSERT_DATE desc";
            gen.AddFilterParameter("p1", searchText);
            List <Article> aList = db.GetObjectList <Article>(gen.GetSelectCommandBasic());

            FillCategory(db, aList);

            return(aList);
        }
コード例 #22
0
        public ActionResult AddCategory(Category param)
        {
            IDatabase2      db  = DatabaseFactory.GetDbObject();
            IQueryGenerator gen = QueryGeneratorFactory.GetDbObject();

            gen.TableName = "category";

            gen.AddDataParameter("LABEL_TEXT", param.LABEL_TEXT);

            db.ExecuteQuery(gen.GetInsertCommand());

            List <Category> cList = ProcessView();

            return(View("Index", cList));
        }
コード例 #23
0
        private static List <Category> GetLoadedCategory(int id)
        {
            IDatabase2      db  = DatabaseFactory.GetDbObject();
            IQueryGenerator gen = QueryGeneratorFactory.GetDbObject();

            gen.SelectText = "select c.* from category c, article_category ac where ";
            gen.FilterText = "c.id = ac.category_id and ac.article_id = :p1 ";
            gen.SelectTail = "order by c.LABEL_TEXT";

            gen.AddFilterParameter("p1", id);

            List <Category> aList = db.GetObjectList <Category>(gen.GetSelectCommandBasic());

            return(aList);
        }
コード例 #24
0
        private static List <Comment> GetData()
        {
            IDatabase2      db  = DatabaseFactory.GetDbObject();
            IQueryGenerator gen = QueryGeneratorFactory.GetDbObject();

            gen.SelectText = @"select c.*, a.TITLE ARTICLE_TITLE from blog.comment c, blog.article a 

                                where

                                c.ARTICLE_ID = a.ID and

                                c.APPROVED = 0 order by INSERT_DATE desc";

            return(db.GetObjectList <Comment>(gen.GetSelectCommandBasic()));
        }
コード例 #25
0
        private static void FillCategory(IDatabase2 db, List <Article> aList)
        {
            foreach (var arc in aList)
            {
                IQueryGenerator gen = QueryGeneratorFactory.GetDbObject();
                gen.SelectText = "select * from category c ,article_category a where ";
                gen.FilterText = "a.category_id = c.id and  a.article_id = :p1";
                gen.SelectTail = "order by c.LABEL_TEXT";

                gen.AddFilterParameter("p1", arc.ID);

                List <Category> cList = db.GetObjectList <Category>(gen.GetSelectCommandBasic());

                arc.CATEGORIES = cList;
            }
        }
コード例 #26
0
        private static List <Article> GetDataWithCategory(int id)
        {
            IDatabase2      db  = DatabaseFactory.GetDbObject();
            IQueryGenerator gen = QueryGeneratorFactory.GetDbObject();

            gen.SelectText = "select a.*, (select count(*) from comment co where co.article_id = a.id and co.APPROVED = 1) COMMENT_COUNT from article a, article_category c where a.id = c.article_id and a.ACTIVE=1 and ";
            gen.FilterText = "c.category_id = :p1 order by a. INSERT_DATE desc";

            gen.AddFilterParameter("p1", id);

            List <Article> aList = db.GetObjectList <Article>(gen.GetSelectCommandBasic());

            FillCategory(db, aList);

            return(aList);
        }
コード例 #27
0
        protected ViewModelBase(IHistoryManager history,
                                DatabaseTableSolutionItem solutionItem,
                                ISolutionItemNameRegistry solutionItemName,
                                ISolutionManager solutionManager,
                                ISolutionTasksService solutionTasksService,
                                IEventAggregator eventAggregator,
                                IQueryGenerator queryGenerator,
                                IDatabaseTableDataProvider databaseTableDataProvider,
                                IMessageBoxService messageBoxService,
                                ITaskRunner taskRunner,
                                IParameterFactory parameterFactory,
                                ITableDefinitionProvider tableDefinitionProvider,
                                IItemFromListProvider itemFromListProvider,
                                ISolutionItemIconRegistry iconRegistry)
        {
            this.solutionItemName          = solutionItemName;
            this.solutionManager           = solutionManager;
            this.solutionTasksService      = solutionTasksService;
            this.queryGenerator            = queryGenerator;
            this.databaseTableDataProvider = databaseTableDataProvider;
            this.messageBoxService         = messageBoxService;
            this.taskRunner           = taskRunner;
            this.parameterFactory     = parameterFactory;
            this.itemFromListProvider = itemFromListProvider;
            this.solutionItem         = solutionItem;
            History = history;

            undoCommand            = new DelegateCommand(History.Undo, CanUndo);
            redoCommand            = new DelegateCommand(History.Redo, CanRedo);
            Save                   = new DelegateCommand(SaveSolutionItem);
            title                  = solutionItemName.GetName(solutionItem);
            Icon                   = iconRegistry.GetIcon(solutionItem);
            nameGeneratorParameter = parameterFactory.Factory("Parameter");

            History.PropertyChanged += (_, _) =>
            {
                undoCommand.RaiseCanExecuteChanged();
                redoCommand.RaiseCanExecuteChanged();
                RaisePropertyChanged(nameof(IsModified));
            };

            tableDefinition        = tableDefinitionProvider.GetDefinition(solutionItem.DefinitionId) !;
            nameGeneratorParameter = parameterFactory.Factory(tableDefinition.Picker);

            AutoDispose(eventAggregator.GetEvent <EventRequestGenerateSql>()
                        .Subscribe(ExecuteSql));
        }
コード例 #28
0
        public ActionResult DeleteCategory(int ID)
        {
            IDatabase2 db = DatabaseFactory.GetDbObject();

            IQueryGenerator gen = QueryGeneratorFactory.GetDbObject();

            gen.SelectText = "delete from category where ";
            gen.FilterText = "id = :p1";

            gen.AddFilterParameter("p1", ID);

            db.ExecuteQuery(gen.GetSelectCommandBasic());

            List <Category> cList = ProcessView();

            return(View("Index", cList));
        }
コード例 #29
0
        public ActionResult AddComment(Comment param)
        {
            IDatabase2      db  = DatabaseFactory.GetDbObject();
            IQueryGenerator gen = QueryGeneratorFactory.GetDbObject();

            gen.TableName = "comment";

            gen.AddDataParameter("ID", Guid.NewGuid().ToString("N"));
            gen.AddDataParameter("ARTICLE_ID", param.ARTICLE_ID);
            gen.AddDataParameter("COMMENT_TEXT", param.COMMENT_TEXT);
            gen.AddDataParameter("USER_NAME", param.USER_NAME);
            gen.AddDataParameter("INSERT_DATE", DateTime.Now);

            db.ExecuteQuery(gen.GetInsertCommand());

            return(Json(new { }));
        }
コード例 #30
0
        private static List <Article> GetData(int id)
        {
            IDatabase2      db  = DatabaseFactory.GetDbObject();
            IQueryGenerator gen = QueryGeneratorFactory.GetDbObject();

            gen.SelectText = "select a.*, (select count(*) from comment c where c.article_id = a.id and c.APPROVED = 1) COMMENT_COUNT from article a where a.ACTIVE=1 and ";
            gen.FilterText = "a.id = :p1";

            gen.AddFilterParameter("p1", id);

            List <Article> aList = db.GetObjectList <Article>(gen.GetSelectCommandBasic());

            FillCategory(db, aList);
            FillComments(db, aList.First());

            return(aList);
        }