Example #1
0
        private WfProcessCollection LoadProcesses(Action <WhereSqlClauseBuilder> action)
        {
            action.NullCheck("action");

            var whereBuilder = new WhereSqlClauseBuilder();

            action(whereBuilder);

            var mapping = ORMapping.GetMappingInfo <WfProcessInstanceData>();

            string[] fields = ORMapping.GetSelectFieldsName(mapping, "Data");

            var sql = string.Format("SELECT {0},{1} FROM {2} WHERE {3}",
                                    string.Join(",", fields),
                                    BINARYDATA,
                                    mapping.TableName,
                                    whereBuilder.ToSqlString(TSqlBuilder.Instance));

            var table = DbHelper.RunSqlReturnDS(sql, GetConnectionName()).Tables[0];

            WfProcessCollection result = null;

            PerformanceMonitorHelper.GetDefaultMonitor().WriteExecutionDuration("DataTableToProcessCollection",
                                                                                () => result = DataTableToProcessCollection(table)
                                                                                );

            return(result);
        }
        protected override string PrepareInsertSql(T obj, ORMappingItemCollection mapping)
        {
            List <string> selectFieldNames = new List <string>(ORMapping.GetSelectFieldsName(mapping, "VersionStartTime", "VersionEndTime", "Status"));

            List <string> insertFieldNames = new List <string>(selectFieldNames);

            insertFieldNames.Add("VersionStartTime");
            insertFieldNames.Add("VersionEndTime");
            insertFieldNames.Add("Status");

            StringBuilder strB = new StringBuilder();

            strB.Append(TSqlBuilder.Instance.DBStatementSeperator);

            strB.AppendFormat("INSERT INTO {0}({1})", GetTableName(obj, mapping), string.Join(",", insertFieldNames));
            strB.Append(TSqlBuilder.Instance.DBStatementSeperator);
            strB.AppendFormat("SELECT {0},{1},{2},{3} FROM {4} WHERE {5}",
                              string.Join(",", selectFieldNames),
                              "@currentTime",
                              TSqlBuilder.Instance.FormatDateTime(ConnectionDefine.MaxVersionEndTime),
                              (int)obj.Status,
                              GetTableName(obj, mapping),
                              this.PrepareWhereSqlBuilder(obj, mapping).ToSqlString(TSqlBuilder.Instance));

            return(strB.ToString());
        }
Example #3
0
        public override string PrepareInsertSql(VersionedSchemaObjectBase obj, ORMappingItemCollection mapping, string[] ignoreProperties)
        {
            List <string> selectFieldNames = new List <string>(ORMapping.GetSelectFieldsName(mapping, "VersionStartTime", "VersionEndTime", "Status"));

            selectFieldNames.Add("Data");

            List <string> insertFieldNames = new List <string>(selectFieldNames);

            insertFieldNames.Add("VersionStartTime");
            insertFieldNames.Add("VersionEndTime");
            insertFieldNames.Add("Status");

            StringBuilder strB = new StringBuilder();

            strB.Append(TSqlBuilder.Instance.DBStatementSeperator);

            strB.AppendFormat("INSERT INTO {0}({1})", GetTableName(obj, mapping), string.Join(",", insertFieldNames));
            strB.Append(TSqlBuilder.Instance.DBStatementSeperator);
            strB.AppendFormat("SELECT {0},{1},{2},{3} FROM {4} WHERE {5}",
                              string.Join(",", selectFieldNames),
                              "@currentTime",
                              TSqlBuilder.Instance.FormatDateTime(DBTimePointActionContext.MaxVersionEndTime),
                              (int)obj.Status,
                              GetTableName(obj, mapping),
                              this.PrepareWhereSqlBuilder(obj, mapping, ignoreProperties).ToSqlString(TSqlBuilder.Instance));

            return(strB.ToString());
        }
Example #4
0
        private WfProcessCollection LoadProcessesByActivityID(string activityID)
        {
            activityID.CheckStringIsNullOrEmpty("activityID");

            ORMappingItemCollection mapping = ORMapping.GetMappingInfo <WfProcessInstanceData>();

            string[] fields = ORMapping.GetSelectFieldsName(mapping, "Data");

            string sql = string.Format("SELECT {0},{1} FROM {2} WHERE INSTANCE_ID IN (SELECT PROCESS_ID FROM WF.PROCESS_CURRENT_ACTIVITIES WHERE ACTIVITY_ID = {3})",
                                       string.Join(",", fields),
                                       BINARYDATA,
                                       mapping.TableName, TSqlBuilder.Instance.CheckQuotationMark(activityID, true));

            DataTable table = DbHelper.RunSqlReturnDS(sql, GetConnectionName()).Tables[0];

            return(DataTableToProcessCollection(table));
        }
Example #5
0
        private VersionedSimpleObject GetExistedObject(T obj)
        {
            WhereSqlClauseBuilder keyBuilder = ORMapping.GetWhereSqlClauseBuilderByPrimaryKey(obj, this.GetMappingInfo());

            string sql = string.Format("SELECT TOP 1 {0} FROM {1} WHERE {2} ORDER BY VersionStartTime DESC",
                                       string.Join(",", ORMapping.GetSelectFieldsName(this.GetMappingInfo(), "Data")),
                                       this.GetMappingInfo().TableName,
                                       keyBuilder.ToSqlString(TSqlBuilder.Instance));

            DataTable table = DbHelper.RunSqlReturnDS(sql, this.GetConnectionName()).Tables[0];

            VersionedSimpleObject result = null;

            if (table.Rows.Count > 0)
            {
                result = this.CreateSimpleObject();
                ORMapping.DataRowToObject(table.Rows[0], result);
            }

            return(result);
        }
Example #6
0
        private UserAndContainerSnapshot GetExistedObject(SCMemberRelation mr)
        {
            UserAndContainerSnapshot condition = new UserAndContainerSnapshot(mr);

            WhereSqlClauseBuilder keyBuilder = ORMapping.GetWhereSqlClauseBuilderByPrimaryKey(condition, this.GetMappingInfo());

            string sql = string.Format("SELECT TOP 1 {0} FROM {1} WHERE {2} ORDER BY VersionStartTime DESC",
                                       string.Join(",", ORMapping.GetSelectFieldsName(this.GetMappingInfo())),
                                       this.GetLoadingTableName(DateTime.MinValue),
                                       keyBuilder.ToSqlString(TSqlBuilder.Instance));

            DataTable table = DbHelper.RunSqlReturnDS(sql, this.GetConnectionName()).Tables[0];

            UserAndContainerSnapshot result = null;

            if (table.Rows.Count > 0)
            {
                result = new UserAndContainerSnapshot();
                ORMapping.DataRowToObject(table.Rows[0], result);
            }

            return(result);
        }