Beispiel #1
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);
            }
        }
		/// <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;
			}
		}
Beispiel #3
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);
        }
		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;
 }