/// <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;
        }
Esempio n. 2
0
        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);
		}