/// <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); } }
/// <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; } }
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); }
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; }
protected HistoryEntryCollection GetHistory(Database database, DateTime from, DateTime to) { var source = HistoryManager.GetHistory(database, from, to); if (source.Count == 0) { return source; } var entrys = new HistoryEntryCollection(); using (var enumerator = source.GetEnumerator()) { Func<HistoryEntry, bool> predicate = null; HistoryEntry entry; while (enumerator.MoveNext()) { entry = enumerator.Current; if (predicate == null) { predicate = historyEntry => (((historyEntry.Category == HistoryCategory.Item) && (historyEntry.Action == entry.Action) && (historyEntry.ItemId == entry.ItemId)) && ((historyEntry.ItemLanguage == entry.ItemLanguage) && (historyEntry.ItemVersion == entry.ItemVersion))) && (historyEntry.Created > entry.Created); } if (!source.Where(predicate).Any()) { entrys.Add(entry); } } } return entrys; }