Пример #1
0
        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
        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"]);
            }
        }
        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
        protected AdoRepository(IAdoContext context, IAdoMapper <T> mapper)
        {
            Context = context;
            Mapper  = mapper;

            Uow             = context;
            _queryGenerator = context.QueryGenerator(mapper);
        }
 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()));
        }
        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
        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);
        }