Пример #1
0
        public static CremaDataTypeMember AddRandomMember(this CremaDataType dataType)
        {
            var member = dataType.NewMember();

            member.InitializeRandom();
            dataType.Members.Add(member);
            return(member);
        }
Пример #2
0
        public static CremaDataTypeMember AddEmptyMember(this CremaDataType dataType)
        {
            dataType.BeginLoadData();
            var member = dataType.NewMember();

            member.EmptyFields();
            member.SetAttribute(DiffUtility.DiffEnabledKey, false);
            member.SetAttribute(DiffUtility.DiffStateKey, DiffState.Imaginary);
            dataType.Members.Add(member);
            dataType.EndLoadData();
            return(member);
        }
        public void Test1()
        {
            var type   = new CremaDataType();
            var member = type.NewMember();

            member.Name  = "A";
            member.Value = 0;

            type.Members.Add(member);
            type.AcceptChanges();

            member.BeginEdit();
            member.Name = "B";
            //type.AsDataView()[0].Row.SetReadOnlyField("Modifier", "werw");
            member.EndEdit();
        }
Пример #4
0
        private void SyncType(CremaDataType sourceType, CremaDataType destType)
        {
            if (destType == null)
            {
                return;
            }
            destType.IsDiffMode = true;
            foreach (var item in sourceType.Members)
            {
                if (item.InternalObject[DiffUtility.DiffIDKey] is Guid memberID && object.Equals(memberID, item.MemberID) == false)
                {
                    var destColumn = destType.Members[memberID];
                    destColumn.CopyFrom(item);
                }
            }

            foreach (var item in destType.Members.ToArray())
            {
                if (sourceType.Members.Contains(item.MemberID) == false)
                {
                    item.Delete();
                }
            }

            foreach (var item in sourceType.Members)
            {
                if (destType.Members.Contains(item.MemberID) == false)
                {
                    var destColumn = destType.NewMember();
                    destColumn.CopyFrom(item);
                    destType.Members.Add(destColumn);
                }
                else if (item.InternalObject[DiffUtility.DiffIDKey] is Guid memberID && object.Equals(memberID, item.MemberID) == true)
                {
                    destType.Members[item.MemberID].CopyFrom(item);
                }
            }

            for (var i = sourceType.Members.Count - 1; i <= 0; i--)
            {
                destType.Members[sourceType.Members[i].MemberID].Index = i;
            }
            destType.IsDiffMode = false;
        }
Пример #5
0
        private static void Import(CremaDataType dataType, SerializationType serializedType)
        {
            //var itemName = new ItemName(serializedType.Name);

            dataType.TypeName     = serializedType.Name;
            dataType.Tags         = serializedType.Tags;
            dataType.CategoryPath = serializedType.CategoryPath;
            dataType.Comment      = serializedType.Comment;
            dataType.IsFlag       = serializedType.IsFlag;

            foreach (var item in serializedType.Members)
            {
                var typeMember = dataType.NewMember();
                Import(typeMember, item);
                dataType.Members.Add(typeMember);
            }

            dataType.AcceptChanges();
        }
Пример #6
0
        private void ReadTypeMember(XmlSchemaEnumerationFacet facet, CremaDataType dataType)
        {
            if (facet.Annotation == null)
            {
                return;
            }

            var member = dataType.NewMember();

            member.Name             = facet.Value;
            member.Comment          = facet.ReadDescription();
            member.Value            = facet.ReadAppInfoComfortableAsInt64(CremaSchema.TypeInfo, CremaSchema.Value, CremaSchemaObsolete.ValueObsolete);
            member.CreationInfo     = facet.ReadAppInfoAsSigunatureDate(CremaSchema.TypeInfo, CremaSchema.Creator, CremaSchema.CreatedDateTime);
            member.ModificationInfo = facet.ReadAppInfoAsSigunatureDate(CremaSchema.TypeInfo, CremaSchema.Modifier, CremaSchema.ModifiedDateTime);
            member.IsEnabled        = facet.ReadAppInfoAsBoolean(CremaSchema.TypeInfo, CremaSchema.Enable, true);
            member.MemberID         = facet.ReadAppInfoAsGuidVersion2(CremaSchema.TypeInfo, CremaSchema.ID, dataType.Name + "_" + member.Name);
            member.Tags             = facet.ReadAppInfoAsTagInfo(CremaSchema.TypeInfo, CremaSchema.Tags);
            dataType.Members.Add(member);
        }
Пример #7
0
        private static void FillMember(CremaDataType diffType, CremaDataType dataType, List <DiffPiece> lines)
        {
            var index = 0;

            diffType.Clear();
            foreach (var item in lines)
            {
                var diffMember = diffType.NewMember();
                if (item.Text != null)
                {
                    var typeMember = dataType.Members[index];
                    diffMember.CopyFrom(typeMember);
                    diffMember.SetAttribute(DiffUtility.DiffIDKey, typeMember.MemberID);
                    diffType.ExtendedProperties[diffMember] = typeMember;
                    index++;
                }
                diffMember.SetAttribute(DiffUtility.DiffEnabledKey, item.Text != null);
                diffMember.Index = diffType.Members.Count;
                diffType.Members.Add(diffMember);
            }
        }
Пример #8
0
        public static CremaDataTypeMember CreateMember(this CremaDataType dataType)
        {
            var memberName = RandomUtility.NextIdentifier();

            if (dataType.Members.Contains(memberName) == true)
            {
                return(null);
            }

            var member = dataType.NewMember();

            member.Name = memberName;
            if (dataType.IsFlag == true)
            {
                member.Value = RandomUtility.NextBit();
            }
            else
            {
                member.Value = RandomUtility.Next(dataType.Members.Count);
            }

            if (RandomUtility.Within(10) == true)
            {
                member.Comment = RandomUtility.NextString();
            }

            try
            {
                dataType.Members.Add(member);
                return(member);
            }
            catch
            {
                return(null);
            }
        }