/// <summary> /// 使用指定的<see cref="SCMemberRelation"/>初始化<see cref="UserAndContainerSnapshot"/>的新实例。 /// </summary> /// <param name="mr"></param> public UserAndContainerSnapshot(SCMemberRelation mr) { this.UserID = mr.ID; this.UserSchemaType = mr.MemberSchemaType; this.ContainerID = mr.ContainerID; this.ContainerSchemaType = mr.ContainerSchemaType; }
public AddMemberAction(SchemaObjectBase container, SchemaObjectBase member) { this.container = container; this.member = member; this.relation = new SCMemberRelation(container, member); if (member.Status != Schemas.SchemaProperties.SchemaObjectStatus.Normal) relation.Status = Schemas.SchemaProperties.SchemaObjectStatus.Deleted; }
private void RelationAssert(SCMemberRelation obj1, SCRelationObject obj2) { Assert.IsNotNull(obj1); Assert.IsNotNull(obj2); Assert.IsTrue(obj1.GetType() == obj2.GetType()); Assert.IsTrue(obj2.VersionEndTime == obj1.VersionEndTime); Assert.IsTrue(obj2.VersionStartTime == obj1.VersionStartTime); Assert.IsTrue(obj2.SchemaType == obj1.SchemaType); Assert.IsTrue(obj2.CreateDate == obj1.CreateDate); if (obj2.Creator != null && obj1.Creator != null) { Assert.AreEqual(obj2.Creator.ID, obj1.Creator.ID); Assert.AreEqual(obj2.Creator.DisplayName, obj2.Creator.DisplayName); } else { Assert.AreEqual(obj2.Creator, obj1.Creator); //两者或者都为空 } Assert.IsTrue(obj1.ID == obj1.ID); Assert.IsTrue(obj2.Status == obj1.Status); foreach (string key in obj1.Properties.GetAllKeys()) { Assert.AreEqual(obj2.Properties[key].StringValue, obj1.Properties[key].StringValue); } }
public void TestSerializeMemberRelation() { System.Runtime.Serialization.Formatters.Binary.BinaryFormatter bf = new System.Runtime.Serialization.Formatters.Binary.BinaryFormatter(); var role = SCObjectGenerator.PrepareRoleObject(); var user = SCObjectGenerator.PrepareUserObject(); var obj1 = new SCMemberRelation(role, user); obj1.CreateDate = DateTime.Now; obj1.VersionEndTime = new DateTime(567890); obj1.VersionEndTime = DateTime.MaxValue; obj1.ID = MCS.Library.Core.UuidHelper.NewUuidString(); obj1.InnerSort = 23; obj1.Status = SchemaObjectStatus.Deleted; System.IO.MemoryStream ms = new System.IO.MemoryStream(); bf.Serialize(ms, obj1); ms.Seek(0, System.IO.SeekOrigin.Begin); var obj2 = (SCMemberRelation)bf.Deserialize(ms); RelationAssert(obj1, obj2); }