Ejemplo n.º 1
0
        public SCAclMemberCollection LoadMembers(IConnectiveSqlClause condition, DateTime timePoint)
        {
            ConnectiveSqlClauseCollection timePointBuilder  = VersionStrategyQuerySqlBuilder.Instance.TimePointToBuilder(timePoint);
            ConnectiveSqlClauseCollection connectiveBuilder = new ConnectiveSqlClauseCollection(condition, timePointBuilder);

            string sql = string.Format(
                "SELECT * FROM {0} WHERE {1} ORDER BY SortID",
                this.GetLoadingTableName(timePoint),
                connectiveBuilder.ToSqlString(TSqlBuilder.Instance));

            SCAclMemberCollection result = new SCAclMemberCollection();

            AUCommon.DoDbAction(() =>
            {
                using (DbContext context = DbContext.GetContext(this.GetConnectionName()))
                {
                    using (IDataReader reader = DbHelper.RunSqlReturnDR(sql, this.GetConnectionName()))
                    {
                        ORMapping.DataReaderToCollection(result, reader);
                    }
                }
            });

            return(result);
        }
Ejemplo n.º 2
0
        public JobCollection UPDLOCKLoadJobs(int batchCount, IConnectiveSqlClause whereClause)
        {
            JobCollection result = new JobCollection();

            if (whereClause.IsEmpty == false)
            {
                using (DbContext context = DbContext.GetContext(this.GetConnectionName()))
                {
                    string top = batchCount >= 0 ? "TOP " + batchCount : string.Empty;

                    Database db = DatabaseFactory.Create(context);

                    using (IDataReader dr = db.ExecuteReader(CommandType.Text,
                                                             string.Format(UPDLOCK_LOAD_JOBS, top,
                                                                           whereClause.AppendTenantCodeSqlClause(typeof(JobBase)).ToSqlString(TSqlBuilder.Instance))))
                    {
                        ORMapping.DataReaderToCollection(result, dr);
                    }
                }

                AfterLoad(result);
            }

            return(result);
        }
Ejemplo n.º 3
0
        public IEnumerable <ReferenceHistoryEntry> GetReferenceHistoryEntries(string objId)
        {
            ReferenceHistoryEntryCollection list = new ReferenceHistoryEntryCollection();

            WhereSqlClauseBuilder where1 = new WhereSqlClauseBuilder();

            where1.AppendItem("R.ObjectID", objId);

            WhereSqlClauseBuilder where2 = new WhereSqlClauseBuilder();

            where2.AppendItem("R.ParentID", objId);

            var sql = string.Format(@"SELECT R.[ParentID], R.[ObjectID], R.[VersionStartTime], R.[VersionEndTime], R.[Status], R.[IsDefault], R.[InnerSort], R.[CreatorID], R.[CreatorName],O.Name, O.DisplayName
FROM [SC].[SchemaRelationObjectsSnapshot] R LEFT JOIN SC.SchemaObjectSnapshot_Current O ON R.ParentID = O.ID
WHERE O.VersionStartTime <=R.VersionStartTime AND (O.VersionEndTime IS NULL OR O.VersionEndTime>=R.VersionEndTime) AND {0}
UNION
SELECT R.[ParentID], R.[ObjectID], R.[VersionStartTime], R.[VersionEndTime], R.[Status], R.[IsDefault], R.[InnerSort], R.[CreatorID], R.[CreatorName],O.Name, O.DisplayName
FROM [SC].[SchemaRelationObjectsSnapshot] R LEFT JOIN SC.SchemaObjectSnapshot_Current O ON R.ObjectID = O.ID
WHERE O.VersionStartTime <=R.VersionStartTime AND (O.VersionEndTime IS NULL OR O.VersionEndTime>=R.VersionEndTime) AND {1} ORDER BY VersionStartTime ASC
", where1.ToSqlString(TSqlBuilder.Instance), where2.ToSqlString(TSqlBuilder.Instance));

            using (var context = DbHelper.GetDBContext(this.GetConnectionName()))
            {
                Database db = DatabaseFactory.Create(context);

                var cmd = db.GetSqlStringCommand(sql);
                using (var dr = db.ExecuteReader(cmd))
                {
                    ORMapping.DataReaderToCollection(list, dr);
                }
            }

            return(list);
        }
Ejemplo n.º 4
0
        /// <summary>
        /// 获取与指定对象关联的条件历史
        /// </summary>
        /// <param name="id">对象ID</param>
        /// <param name="type">类型,如果为<see langword="null"/>则不限。</param>
        /// <returns></returns>
        public IEnumerable <SCCondition> GetConditionHistoryEntries(string id, string type)
        {
            SCConditionCollection entries = new SCConditionCollection();

            using (var context = DbHelper.GetDBContext(this.GetConnectionName()))
            {
                Database db = DatabaseFactory.Create(context);

                WhereSqlClauseBuilder builder = new WhereSqlClauseBuilder();
                builder.AppendItem("OwnerID", id);

                if (type != null)
                {
                    builder.AppendItem("Type", type);
                }

                var sql = @"SELECT *  FROM [SC].[Conditions] WHERE " + builder.ToSqlString(TSqlBuilder.Instance) + " ORDER BY [VersionEndTime] DESC, SortID ASC";
                var cmd = db.GetSqlStringCommand(sql);
                using (var dr = db.ExecuteReader(cmd))
                {
                    ORMapping.DataReaderToCollection(entries, dr);
                }

                return(entries);
            }
        }
Ejemplo n.º 5
0
        public IEnumerable <LogCategory> LoadCategories()
        {
            LogCategoryCollection list = new LogCategoryCollection();

            var sql = @"SELECT [Category],[OperationType]
FROM [SC].[OperationLog] GROUP BY Category,OperationType";

            using (var context = DbHelper.GetDBContext(this.GetConnectionName()))
            {
                Database db = DatabaseFactory.Create(context);

                var cmd = db.GetSqlStringCommand(sql);
                using (var dr = db.ExecuteReader(cmd))
                {
                    ORMapping.DataReaderToCollection(list, dr);
                }
            }

            return(list);
        }
Ejemplo n.º 6
0
        /// <summary>
        /// 获取与制定对象关联的
        /// </summary>
        /// <param name="id"></param>
        /// <param name="schemaType"></param>
        /// <returns></returns>
        public IEnumerable <HistoryEntry> GetAllHistoryEntry(string id, ref string schemaType)
        {
            HistoryEntryCollection entries = new HistoryEntryCollection();

            schemaType = null;
            using (var context = DbHelper.GetDBContext(this.GetConnectionName()))
            {
                Database db = DatabaseFactory.Create(context);

                WhereSqlClauseBuilder builder = new WhereSqlClauseBuilder();
                builder.AppendItem("ID", id);
                var sql = "SELECT TOP 1 SchemaType FROM [SC].[SchemaObjectSnapshot] WHERE " + builder.ToSqlString(TSqlBuilder.Instance);
                sql += @"
SELECT [VersionStartTime]
      ,[VersionEndTime]
      ,[CreatorID]
      ,[CreatorName]
      ,[Status]
FROM [SC].[SchemaObjectSnapshot]
WHERE
" + builder.ToSqlString(TSqlBuilder.Instance) + " ORDER BY VersionStartTime DESC";
                var cmd = db.GetSqlStringCommand(sql);
                using (var dr = db.ExecuteReader(cmd))
                {
                    if (dr.Read())
                    {
                        schemaType = dr.GetString(0);
                        if (dr.NextResult())
                        {
                            ORMapping.DataReaderToCollection(entries, dr);
                        }
                        else
                        {
                            cmd.Cancel();
                        }
                    }
                }

                return(entries);
            }
        }
Ejemplo n.º 7
0
        public AUSchemaCategoryCollection LoadSubCategories(string superID, bool normalOnly, DateTime timePoint)
        {
            var conditions = VersionStrategyQuerySqlBuilder.Instance.TimePointToBuilder(timePoint);

            WhereSqlClauseBuilder where = new WhereSqlClauseBuilder();
            if (string.IsNullOrEmpty(superID) == false)
            {
                where.AppendItem("ParentID", superID);
            }
            else
            {
                where.AppendItem("ParentID", (string)null, "IS");
            }

            if (normalOnly)
            {
                where.NormalFor("Status");
            }

            conditions.Add(where);
            AUSchemaCategoryCollection result = new AUSchemaCategoryCollection();

            AUCommon.DoDbAction(() =>
            {
                using (DbContext context = DbContext.GetContext(this.GetConnectionName()))
                {
                    VersionedObjectAdapterHelper.Instance.FillData(ORMapping.GetMappingInfo(typeof(AUSchemaCategory)).TableName, conditions, this.GetConnectionName(),
                                                                   reader =>
                    {
                        ORMapping.DataReaderToCollection(result, reader);
                    });
                }
            });

            return(result);
        }
Ejemplo n.º 8
0
        public IEnumerable <HistoryEntry> GetObjectHistoryEntries(string objId)
        {
            HistoryEntryCollection list = new HistoryEntryCollection();

            WhereSqlClauseBuilder where = new WhereSqlClauseBuilder();

            where.AppendItem("ID", objId);

            var sql = @"SELECT [Name],[DisplayName],[VersionStartTime], [VersionEndTime],[Status]
FROM [SC].[SchemaObjectSnapshot] WHERE " + where.ToSqlString(TSqlBuilder.Instance) + " ORDER BY VersionStartTime ASC";

            using (var context = DbHelper.GetDBContext(this.GetConnectionName()))
            {
                Database db = DatabaseFactory.Create(context);

                var cmd = db.GetSqlStringCommand(sql);
                using (var dr = db.ExecuteReader(cmd))
                {
                    ORMapping.DataReaderToCollection(list, dr);
                }
            }

            return(list);
        }