using System; using System.Collections.Generic; using System.Linq; using System.Runtime.Serialization; using System.Text; using System.Threading.Tasks; namespace Future.Contract { /// /// 所有存储于数据库中的数据档案的基类 /// [DataContract] public class FutureArchive : FutureObject { /// /// 是否已经被标记选择 /// public bool IsSelected { get; set; } /// /// 数据记录的唯一标识 /// [DataMember] public string RecordID { get; set; } /// /// 数据档案的唯一标识 /// [DataMember] public string ArchiveID { get; set; } /// /// 数据档案的标题 /// [DataMember] public string Title { get; set; } /// /// 数据档案的描述 /// [DataMember] public string Remark { get; set; } /// /// 数据档案是否处于可用状态 /// [DataMember] public bool IsAlive { get; set; } /// /// 是否为一份档案的活动记录 /// [DataMember] public bool IsCurrent { get; set; } /// /// 数据档案本次归档的操作用户 /// [DataMember] public string OperatorID { get; set; } /// /// 数据档案本次归档的操作时间 /// [DataMember] public DateTime UpdateDateTime { get; set; } /// /// 深度拷贝对象:将当前对象序列化,再通过反序列化方式创建新对象,从而实现对象的深度拷贝 /// /// public override IFuture Clone() { FutureArchive result = new FutureArchive(); result.Cover(this); return result; } public override bool Cover(IFuture refer) { if (!base.Cover(refer)) return false; FutureArchive archive = refer as FutureArchive; //if (archive == null) return false; this.RecordID = archive.RecordID; this.ArchiveID = archive.ArchiveID; this.Title = archive.Title; this.Remark = archive.Remark; this.IsCurrent = archive.IsCurrent; this.IsAlive = archive.IsAlive; this.OperatorID = archive.OperatorID; this.UpdateDateTime = archive.UpdateDateTime; return true; } } }