Example #1
0
 public void CanByDefaultDeserialiseOldVersionOfObjectIntoNewVersionOfObject()
 {
     using (FileStream stream = new FileStream(FilePathToSerializedOldVersion, FileMode.Open, FileAccess.Read))
     {
         VersionedSimpleObject deserialized = (VersionedSimpleObject)NewFormatter.Deserialize(stream);
         AssertAreEquivalent(ExampleVersionedSimpleObject, deserialized);
     }
 }
Example #2
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 #3
0
        /// <summary>
        /// 合并现有对象信息
        /// </summary>
        /// <param name="obj">对其进行更新的<typeparamref name="T"/>对象。</param>
        public void MergeExistsObjectInfo(T obj)
        {
            if (SCActionContext.Current.OriginalObject != null &&
                SCActionContext.Current.OriginalObject.SchemaType == obj.SchemaType &&
                SCActionContext.Current.OriginalObject.ID == obj.ID)
            {
                obj.Creator          = SCActionContext.Current.OriginalObject.Creator;
                obj.CreateDate       = SCActionContext.Current.OriginalObject.CreateDate;
                obj.VersionStartTime = SCActionContext.Current.OriginalObject.VersionStartTime;
            }
            else
            {
                VersionedSimpleObject existedInfo = this.GetExistedObject(obj);

                if (existedInfo != null)
                {
                    obj.CreateDate       = existedInfo.CreateDate;
                    obj.Creator          = existedInfo.Creator;
                    obj.VersionStartTime = existedInfo.VersionStartTime;
                }
            }
        }