Exemplo n.º 1
0
        // Create an attribute with a specified name.
        private static void CreateAttribute(Guid modelId, Guid entityId, string attributeName)
        {
            try
            {
                // Create the request object for attribute creation.
                MetadataCreateRequest createRequest = new MetadataCreateRequest();
                createRequest.Metadata = new Metadata();
                createRequest.Metadata.Attributes = new System.Collections.ObjectModel.Collection<MetadataAttribute> { };
                MetadataAttribute newAttribute = new MetadataAttribute();
                // Set model id, entity id, and attribute name.
                newAttribute.Identifier = new MemberTypeContextIdentifier { Name = attributeName, ModelId = new Identifier { Id = modelId }, EntityId = new Identifier { Id = entityId }, MemberType = MemberType.Leaf };
                newAttribute.AttributeType = AttributeType.FreeForm;
                newAttribute.DataType = AttributeDataType.Text;
                // When the DataType is "Text", set the length (100) to DataTypeInformation.
                newAttribute.DataTypeInformation = 100;
                newAttribute.DisplayWidth = 100;
                createRequest.Metadata.Attributes.Add(newAttribute);

                // Create a new attribute
                MetadataCreateResponse createResponse = clientProxy.MetadataCreate(createRequest);

                HandleOperationErrors(createResponse.OperationResult);
            }
            catch (Exception ex)
            {
                Console.WriteLine("Error: {0}", ex);
            }
        }
 public static MetadataAttribute ToAttribute(this Attribute attr)
 {
     var firstCtor = attr.GetType().GetConstructors().OrderBy(x => x.GetParameters().Length).FirstOrDefault();
     var metaAttr = new MetadataAttribute {
         Name = attr.GetType().Name,
         ConstructorArgs = firstCtor != null
             ? firstCtor.GetParameters().ToList().ConvertAll(x => x.ToProperty())
             : null,
         Args = attr.NonDefaultProperties(),
     };
     return metaAttr;
 }
Exemplo n.º 3
0
        public static MetadataAttribute ToMetadataAttribute(this MetadataRoute route)
        {
            var attr = new MetadataAttribute
            {
                Name = "Route",
                ConstructorArgs = new List<MetadataPropertyType>
                {
                    new MetadataPropertyType { Type = "string", Value = route.Path },
                },
            };

            if (route.Verbs != null)
            {
                attr.ConstructorArgs.Add(
                    new MetadataPropertyType { Type = "string", Value = route.Verbs });
            }

            return attr;
        }
        public MetadataAttribute ToAttribute(Attribute attr)
        {
            var firstCtor = attr.GetType().GetConstructors()
                //.OrderBy(x => x.GetParameters().Length)
                .FirstOrDefault();
            var metaAttr = new MetadataAttribute
            {
                Name = attr.GetType().Name.Replace("Attribute", ""),
                ConstructorArgs = firstCtor != null
                    ? firstCtor.GetParameters().ToList().ConvertAll(ToProperty)
                    : null,
                Args = NonDefaultProperties(attr),
            };

            //Populate ctor Arg values from matching properties
            var argValues = new Dictionary<string, string>(StringComparer.OrdinalIgnoreCase);
            metaAttr.Args.Each(x => argValues[x.Name] = x.Value);
            metaAttr.Args.RemoveAll(x => x.ReadOnly == true);

            if (metaAttr.ConstructorArgs != null)
            {
                foreach (var arg in metaAttr.ConstructorArgs)
                {
                    string value;
                    if (argValues.TryGetValue(arg.Name, out value))
                    {
                        arg.Value = value;
                    }
                }
                metaAttr.ConstructorArgs.RemoveAll(x => x.Value == null);
                if (metaAttr.ConstructorArgs.Count == 0)
                    metaAttr.ConstructorArgs = null;
            }

            //Only emit ctor args or property args
            if (metaAttr.ConstructorArgs == null
                || metaAttr.ConstructorArgs.Count != metaAttr.Args.Count)
            {
                metaAttr.ConstructorArgs = null;
            }
            else
            {
                metaAttr.Args = null;
            }

            return metaAttr;
        }
Exemplo n.º 5
0
        // Update the attribute group name and add an attribute to it.
        private static void UpdateAttributeGroup(Guid modelId, Guid entityId, Guid attributeGroupId, string newAttributeGroupName, Guid attributeId)
        {
            try
            {
                // Create the request object for updating attribute group information.
                MetadataUpdateRequest updateRequest = new MetadataUpdateRequest();
                updateRequest.Metadata = new Metadata();
                updateRequest.Metadata.AttributeGroups = new System.Collections.ObjectModel.Collection<AttributeGroup> { };
                // Set model id, entity id, attribute group id, and new attribute group name.
                AttributeGroup anAttributeGroup = new AttributeGroup { Identifier = new MemberTypeContextIdentifier { Name = newAttributeGroupName, Id = attributeGroupId, ModelId = new Identifier { Id = modelId }, EntityId = new Identifier { Id = entityId }, MemberType = MDSTestService.MemberType.Leaf } };
                // Add the attribute object with the attribute id.
                anAttributeGroup.Attributes = new System.Collections.ObjectModel.Collection<MetadataAttribute> { };
                MetadataAttribute anAttribute = new MetadataAttribute { Identifier = new MemberTypeContextIdentifier { Id = attributeId } };
                anAttributeGroup.Attributes.Add(anAttribute);
                updateRequest.Metadata.AttributeGroups.Add(anAttributeGroup);

                // Update the attribute group information.
                MetadataUpdateResponse updateResponse = clientProxy.MetadataUpdate(updateRequest);

                HandleOperationErrors(updateResponse.OperationResult);
            }
            catch (Exception ex)
            {
                Console.WriteLine("Error: {0}", ex);
            }
        }
Exemplo n.º 6
0
 public MetadataAttribute ToAttribute(Attribute attr)
 {
     var firstCtor = attr.GetType().GetConstructors().OrderBy(x => x.GetParameters().Length).FirstOrDefault();
     var metaAttr = new MetadataAttribute
     {
         Name = attr.GetType().Name.Replace("Attribute", ""),
         ConstructorArgs = firstCtor != null
             ? firstCtor.GetParameters().ToList().ConvertAll(ToProperty)
             : null,
         Args = NonDefaultProperties(attr),
     };
     return metaAttr;
 }
Exemplo n.º 7
0
        // Delete an attribute with the specified attribute id.
        private static void DeleteAttribute(Guid attributeId)
        {
            try
            {
                // Create the request object for attribute deletion.
                MetadataDeleteRequest deleteRequest = new MetadataDeleteRequest();
                deleteRequest.Metadata = new Metadata();
                deleteRequest.Metadata.Attributes = new System.Collections.ObjectModel.Collection<MetadataAttribute> { };
                MetadataAttribute anAttribute = new MetadataAttribute();
                // Set the attribute id.
                anAttribute.Identifier = new MemberTypeContextIdentifier { Id = attributeId };
                deleteRequest.Metadata.Attributes.Add(anAttribute);

                // Delete a specified attribute
                MetadataDeleteResponse deleteResponse = clientProxy.MetadataDelete(deleteRequest);

                HandleOperationErrors(deleteResponse.OperationResult);
            }
            catch (Exception ex)
            {
                Console.WriteLine("Error: {0}", ex);
            }
        }
        public void SetMetadataAttr(AlternateContentProperty altProp, AlternateContent altContent,
                                    Metadata md, MetadataAttribute mdAttr, string newName, string newValue)
        {
            if (string.IsNullOrEmpty(newName) || string.IsNullOrEmpty(newValue))
            {
                return;
            }

            Tuple <TreeNode, TreeNode> selection = m_UrakawaSession.GetTreeNodeSelection();
            TreeNode node = selection.Item2 ?? selection.Item1;

            if (node == null)
            {
                return;
            }

            var altProp_ = node.GetAlternateContentProperty();

            if (altProp_ == null)
            {
                return;
            }

            if (altProp != null && altProp_ != altProp)
            {
                return;
            }

            if (altContent != null && altProp_.AlternateContents.IndexOf(altContent) < 0)
            {
                return;
            }

            if (mdAttr == null)
            {
                MetadataAttribute attr = md.NameContentAttribute;

                if (attr.Name != newName)
                {
                    AlternateContentMetadataSetNameCommand cmd1 =
                        node.Presentation.CommandFactory.CreateAlternateContentMetadataSetNameCommand(
                            altProp,
                            altContent,
                            attr,
                            newName
                            );
                    node.Presentation.UndoRedoManager.Execute(cmd1);
                }
                if (attr.Value != newValue)
                {
                    AlternateContentMetadataSetContentCommand cmd2 =
                        node.Presentation.CommandFactory.CreateAlternateContentMetadataSetContentCommand(
                            altProp,
                            altContent,
                            attr,
                            newValue
                            );
                    node.Presentation.UndoRedoManager.Execute(cmd2);
                }
            }
            else
            {
                if (mdAttr.Name != newName)
                {
                    AlternateContentMetadataSetNameCommand cmd1 =
                        node.Presentation.CommandFactory.CreateAlternateContentMetadataSetNameCommand(
                            altProp,
                            altContent,
                            mdAttr,
                            newName
                            );
                    node.Presentation.UndoRedoManager.Execute(cmd1);
                }
                if (mdAttr.Value != newValue)
                {
                    AlternateContentMetadataSetContentCommand cmd2 =
                        node.Presentation.CommandFactory.CreateAlternateContentMetadataSetContentCommand(
                            altProp,
                            altContent,
                            mdAttr,
                            newValue
                            );
                    node.Presentation.UndoRedoManager.Execute(cmd2);
                }
            }


            RaisePropertyChanged(() => Metadatas);
            RaisePropertyChanged(() => Descriptions);
        }
        private void LoadAttributes(ModelMetadata metadata)
        {
            //TO-DO: Refazer os métodos para tornar-los mais dinâmicos...

            if (metadata != null)
            {
                MetadataAttribute commonAttribute = new MetadataAttribute()
                {
                    AttributeName = "Common" + "Attribute",
                    Property      = new Dictionary <string, object>()
                    {
                        { "DisplayName", metadata.DisplayName },
                        { "ShortDisplayName", metadata.ShortDisplayName },
                        { "IsRequired", metadata.IsRequired },
                        { "IsReadOnly", metadata.IsReadOnly },
                        { "IsNullableValueType", metadata.IsNullableValueType },
                        { "Description", metadata.Description },
                        { "Watermark", metadata.Watermark },
                        { "ShowForDisplay", metadata.ShowForDisplay },
                        { "ShowForEdit", metadata.ShowForEdit },

                        { "DataTypeName", metadata.DataTypeName },
                        { "IsComplexType", metadata.IsComplexType },
                        { "EditFormatString", metadata.EditFormatString },
                        { "HideSurroundingHtml", metadata.HideSurroundingHtml },
                        { "HtmlEncode", metadata.HtmlEncode },
                        { "ConvertEmptyStringToNull", metadata.ConvertEmptyStringToNull },
                        { "NullDisplayText", metadata.NullDisplayText },
                        { "SimpleDisplayText", metadata.SimpleDisplayText },
                        { "TemplateHint", metadata.TemplateHint },
                        { "DisplayFormatString", metadata.DisplayFormatString },
                    }
                };
                metadataAttributes.Add(commonAttribute);
            }

            HtmlAttributesAttribute htmlAttributesAttribute = GetModelMetadataAttributes(metadata).OfType <HtmlAttributesAttribute>().FirstOrDefault();

            if (htmlAttributesAttribute != null)
            {
                MetadataAttribute metaAttribute = new MetadataAttribute()
                {
                    AttributeName = "HtmlAttributes" + "Attribute",
                    Property      = new Dictionary <string, object>()
                    {
                        { "ID", htmlAttributesAttribute.ID },
                        { "Name", htmlAttributesAttribute.Name },
                        { "Class", htmlAttributesAttribute.Class },
                        { "Style", htmlAttributesAttribute.Style },
                        { "Width", htmlAttributesAttribute.Width },
                        { "Height", htmlAttributesAttribute.Height },
                        { "Placeholder", htmlAttributesAttribute.Placeholder },
                    }
                };
                metadataAttributes.Add(metaAttribute);
            }

            DataTypeAttribute dataTypeAttribute = GetModelMetadataAttributes(metadata).OfType <DataTypeAttribute>().FirstOrDefault();

            if (dataTypeAttribute != null)
            {
                MetadataAttribute metaAttribute = new MetadataAttribute()
                {
                    AttributeName = "DataType" + "Attribute",
                    Property      = new Dictionary <string, object>()
                    {
                        { "DataType", dataTypeAttribute.DataType },
                        { "ErrorMessage", dataTypeAttribute.ErrorMessage },
                        { "ErrorMessageResourceName", dataTypeAttribute.ErrorMessageResourceName },
                        { "RequiresValidationContext", dataTypeAttribute.RequiresValidationContext },
                    }
                };
                metadataAttributes.Add(metaAttribute);
            }

            DataTypeFieldAttribute dataTypeFieldAttribute = GetModelMetadataAttributes(metadata).OfType <DataTypeFieldAttribute>().FirstOrDefault();

            if (dataTypeFieldAttribute != null)
            {
                MetadataAttribute metaAttribute = new MetadataAttribute()
                {
                    AttributeName = "DataTypeField" + "Attribute",
                    Property      = new Dictionary <string, object>()
                    {
                        { "DataType", dataTypeFieldAttribute.DataType },
                        { "ErrorMessage", dataTypeFieldAttribute.ErrorMessage },
                        { "ErrorMessageResourceName", dataTypeFieldAttribute.ErrorMessageResourceName },
                        { "RequiresValidationContext", dataTypeFieldAttribute.RequiresValidationContext },
                        { "Cols", dataTypeFieldAttribute.Cols },
                        { "Rows", dataTypeFieldAttribute.Rows },
                        { "Wrap", (dataTypeFieldAttribute.HardWrap ? "hard" : null) },
                        { "MinLength", dataTypeFieldAttribute.MinLength },
                        { "MaxLength", dataTypeFieldAttribute.MaxLength },
                    }
                };
                metadataAttributes.Add(metaAttribute);
            }

            RegularExpressionAttribute regularExpressionAttribute = GetModelMetadataAttributes(metadata).OfType <RegularExpressionAttribute>().FirstOrDefault();

            if (regularExpressionAttribute != null)
            {
                MetadataAttribute metaAttribute = new MetadataAttribute()
                {
                    AttributeName = "RegularExpression" + "Attribute",
                    Property      = new Dictionary <string, object>()
                    {
                        { "Pattern", regularExpressionAttribute.Pattern },
                        { "ErrorMessage", regularExpressionAttribute.ErrorMessage },
                        { "ErrorMessageResourceName", regularExpressionAttribute.ErrorMessageResourceName },
                        { "RequiresValidationContext", regularExpressionAttribute.RequiresValidationContext },
                    }
                };
                metadataAttributes.Add(metaAttribute);
            }

            StringLengthAttribute stringLengthAttribute = GetModelMetadataAttributes(metadata).OfType <StringLengthAttribute>().FirstOrDefault();

            if (stringLengthAttribute != null)
            {
                MetadataAttribute metaAttribute = new MetadataAttribute()
                {
                    AttributeName = "StringLength" + "Attribute",
                    Property      = new Dictionary <string, object>()
                    {
                        { "MinimumLength", stringLengthAttribute.MinimumLength },
                        { "MaximumLength", stringLengthAttribute.MaximumLength },
                        { "ErrorMessage", stringLengthAttribute.ErrorMessage },
                        { "FormatErrorMessage", stringLengthAttribute.FormatErrorMessage(metadata.PropertyName) },
                        { "ErrorMessageResourceName", stringLengthAttribute.ErrorMessageResourceName },
                        { "RequiresValidationContext", stringLengthAttribute.RequiresValidationContext },
                    }
                };
                metadataAttributes.Add(metaAttribute);
            }

            MinLengthAttribute minLengthAttribute = GetModelMetadataAttributes(metadata).OfType <MinLengthAttribute>().FirstOrDefault();

            if (minLengthAttribute != null)
            {
                MetadataAttribute metaAttribute = new MetadataAttribute()
                {
                    AttributeName = "MinLength" + "Attribute",
                    Property      = new Dictionary <string, object>()
                    {
                        { "Length", minLengthAttribute.Length },
                        { "TypeId", minLengthAttribute.TypeId },
                        { "ErrorMessage", minLengthAttribute.ErrorMessage },
                        { "ErrorMessageResourceName", minLengthAttribute.ErrorMessageResourceName },
                        { "RequiresValidationContext", minLengthAttribute.RequiresValidationContext },
                    }
                };
                metadataAttributes.Add(metaAttribute);
            }

            MaxLengthAttribute maxLengthAttribute = GetModelMetadataAttributes(metadata).OfType <MaxLengthAttribute>().FirstOrDefault();

            if (maxLengthAttribute != null)
            {
                MetadataAttribute metaAttribute = new MetadataAttribute()
                {
                    AttributeName = "MaxLength" + "Attribute",
                    Property      = new Dictionary <string, object>()
                    {
                        { "Length", maxLengthAttribute.Length },
                        { "TypeId", maxLengthAttribute.TypeId },
                        { "ErrorMessage", maxLengthAttribute.ErrorMessage },
                        { "ErrorMessageResourceName", maxLengthAttribute.ErrorMessageResourceName },
                        { "RequiresValidationContext", maxLengthAttribute.RequiresValidationContext },
                    }
                };
                metadataAttributes.Add(metaAttribute);
            }

            DisplayAttribute displayAttribute = GetModelMetadataAttributes(metadata).OfType <DisplayAttribute>().FirstOrDefault();

            if (displayAttribute != null)
            {
                MetadataAttribute metaAttribute = new MetadataAttribute()
                {
                    AttributeName = "Display" + "Attribute",
                    Property      = new Dictionary <string, object>()
                    {
                        { "ShortName", displayAttribute.ShortName },
                        { "Name", displayAttribute.Name },
                        { "Prompt", displayAttribute.Prompt },
                        { "GroupName", displayAttribute.GroupName },
                        { "Description", displayAttribute.Description },
                    }
                };
                metadataAttributes.Add(metaAttribute);
            }

            RequiredAttribute requiredAttribute = GetModelMetadataAttributes(metadata).OfType <RequiredAttribute>().FirstOrDefault();

            if (requiredAttribute != null)
            {
                MetadataAttribute metaAttribute = new MetadataAttribute()
                {
                    AttributeName = "Required" + "Attribute",
                    Property      = new Dictionary <string, object>()
                    {
                        { "IsRequired", true },
                        { "AllowEmptyStrings", requiredAttribute.AllowEmptyStrings },
                        { "ErrorMessage", requiredAttribute.ErrorMessage },
                        { "ErrorMessageResourceName", requiredAttribute.ErrorMessageResourceName },
                        { "RequiresValidationContext", requiredAttribute.RequiresValidationContext },
                    }
                };
                metadataAttributes.Add(metaAttribute);
            }

            RangeAttribute rangeAttribute = GetModelMetadataAttributes(metadata).OfType <RangeAttribute>().FirstOrDefault();

            if (rangeAttribute != null)
            {
                MetadataAttribute metaAttribute = new MetadataAttribute()
                {
                    AttributeName = "Range" + "Attribute",
                    Property      = new Dictionary <string, object>()
                    {
                        { "OperandType", rangeAttribute.OperandType },
                        { "AllowEmptyStrings", rangeAttribute.Minimum },
                        { "Maximum", rangeAttribute.Maximum },
                        { "ErrorMessage", rangeAttribute.ErrorMessage },
                        { "ErrorMessageResourceName", rangeAttribute.ErrorMessageResourceName },
                        { "RequiresValidationContext", rangeAttribute.RequiresValidationContext },
                    }
                };
                metadataAttributes.Add(metaAttribute);
            }

            DisplayFormatAttribute displayFormatAttribute = GetModelMetadataAttributes(metadata).OfType <DisplayFormatAttribute>().FirstOrDefault();

            if (displayFormatAttribute != null)
            {
                MetadataAttribute metaAttribute = new MetadataAttribute()
                {
                    AttributeName = "DisplayFormat" + "Attribute",
                    Property      = new Dictionary <string, object>()
                    {
                        { "DataFormatString", displayFormatAttribute.DataFormatString },
                        { "ApplyFormatInEditMode", displayFormatAttribute.ApplyFormatInEditMode },
                        { "ConvertEmptyStringToNull", displayFormatAttribute.ConvertEmptyStringToNull },
                        { "HtmlEncode", displayFormatAttribute.HtmlEncode },
                        { "NullDisplayText", displayFormatAttribute.NullDisplayText },
                        { "IsDefault" + "Attribute", displayFormatAttribute.IsDefaultAttribute() },
                    }
                };
                metadataAttributes.Add(metaAttribute);
            }

            CreditCardAttribute creditCardAttribute = GetModelMetadataAttributes(metadata).OfType <CreditCardAttribute>().FirstOrDefault();

            if (creditCardAttribute != null)
            {
                MetadataAttribute metaAttribute = new MetadataAttribute()
                {
                    AttributeName = "CreditCard" + "Attribute",
                    Property      = new Dictionary <string, object>()
                    {
                        { "DataType", creditCardAttribute.DataType },
                        { "CustomDataType", creditCardAttribute.CustomDataType },
                        { "DisplayFormat", creditCardAttribute.DisplayFormat },
                        { "ErrorMessage", creditCardAttribute.ErrorMessage },
                        { "FormatErrorMessage", stringLengthAttribute.FormatErrorMessage(metadata.PropertyName) },
                        { "ErrorMessageResourceName", creditCardAttribute.ErrorMessageResourceName },
                        { "ErrorMessageResourceType", creditCardAttribute.ErrorMessageResourceType },
                        { "RequiresValidationContext", creditCardAttribute.RequiresValidationContext },
                    }
                };
                metadataAttributes.Add(metaAttribute);
            }

            CustomValidationAttribute customValidationAttribute = GetModelMetadataAttributes(metadata).OfType <CustomValidationAttribute>().FirstOrDefault();

            if (customValidationAttribute != null)
            {
                MetadataAttribute metaAttribute = new MetadataAttribute()
                {
                    AttributeName = "CustomValidation" + "Attribute",
                    Property      = new Dictionary <string, object>()
                    {
                        { "ValidatorType", customValidationAttribute.ValidatorType },
                        { "Method", customValidationAttribute.Method },
                        { "ErrorMessage", creditCardAttribute.ErrorMessage },
                        { "FormatErrorMessage", stringLengthAttribute.FormatErrorMessage(metadata.PropertyName) },
                        { "ErrorMessageResourceName", creditCardAttribute.ErrorMessageResourceName },
                        { "ErrorMessageResourceType", creditCardAttribute.ErrorMessageResourceType },
                        { "RequiresValidationContext", creditCardAttribute.RequiresValidationContext },
                    }
                };
                metadataAttributes.Add(metaAttribute);
            }

            EmailAddressAttribute emailAddressAttribute = GetModelMetadataAttributes(metadata).OfType <EmailAddressAttribute>().FirstOrDefault();

            if (emailAddressAttribute != null)
            {
                MetadataAttribute metaAttribute = new MetadataAttribute()
                {
                    AttributeName = "EmailAddress" + "Attribute",
                    Property      = new Dictionary <string, object>()
                    {
                        { "DataType", emailAddressAttribute.DataType },
                        { "CustomDataType", emailAddressAttribute.CustomDataType },
                        { "DisplayFormat", emailAddressAttribute.DisplayFormat },
                        { "ErrorMessage", creditCardAttribute.ErrorMessage },
                        { "FormatErrorMessage", stringLengthAttribute.FormatErrorMessage(metadata.PropertyName) },
                        { "ErrorMessageResourceName", creditCardAttribute.ErrorMessageResourceName },
                        { "ErrorMessageResourceType", creditCardAttribute.ErrorMessageResourceType },
                        { "RequiresValidationContext", creditCardAttribute.RequiresValidationContext },
                    }
                };
                metadataAttributes.Add(metaAttribute);
            }

            FileExtensionsAttribute fileExtensionsAttribute = GetModelMetadataAttributes(metadata).OfType <FileExtensionsAttribute>().FirstOrDefault();

            if (fileExtensionsAttribute != null)
            {
                MetadataAttribute metaAttribute = new MetadataAttribute()
                {
                    AttributeName = "FileExtensions" + "Attribute",
                    Property      = new Dictionary <string, object>()
                    {
                        { "DataType", emailAddressAttribute.DataType },
                        { "CustomDataType", emailAddressAttribute.CustomDataType },
                        { "DisplayFormat", emailAddressAttribute.DisplayFormat },
                        { "ErrorMessage", creditCardAttribute.ErrorMessage },
                        { "FormatErrorMessage", stringLengthAttribute.FormatErrorMessage(metadata.PropertyName) },
                        { "ErrorMessageResourceName", creditCardAttribute.ErrorMessageResourceName },
                        { "ErrorMessageResourceType", creditCardAttribute.ErrorMessageResourceType },
                        { "RequiresValidationContext", creditCardAttribute.RequiresValidationContext },
                    }
                };
                metadataAttributes.Add(metaAttribute);
            }

            TimestampAttribute timestampAttribute = GetModelMetadataAttributes(metadata).OfType <TimestampAttribute>().FirstOrDefault();

            if (timestampAttribute != null)
            {
                MetadataAttribute metaAttribute = new MetadataAttribute()
                {
                    AttributeName = "FileExtensions" + "Attribute",
                    Property      = new Dictionary <string, object>()
                    {
                        { "TypeId", timestampAttribute.TypeId },
                    }
                };
                metadataAttributes.Add(metaAttribute);
            }

            ViewDisabledAttribute viewDisabledAttribute = GetModelMetadataAttributes(metadata).OfType <ViewDisabledAttribute>().FirstOrDefault();

            if (viewDisabledAttribute != null)
            {
                MetadataAttribute metaAttribute = new MetadataAttribute()
                {
                    AttributeName = "ViewDisabled" + "Attribute",
                    Property      = new Dictionary <string, object>()
                    {
                        { "Declared", true },
                    }
                };
                metadataAttributes.Add(metaAttribute);
            }

            TextAreaAttribute textAreaAttribute = GetModelMetadataAttributes(metadata).OfType <TextAreaAttribute>().FirstOrDefault();

            if (textAreaAttribute != null)
            {
                MetadataAttribute metaAttribute = new MetadataAttribute()
                {
                    AttributeName = "TextArea" + "Attribute",
                    Property      = new Dictionary <string, object>()
                    {
                        { "Cols", textAreaAttribute.Cols },
                        { "Rows", textAreaAttribute.Rows },
                        { "Wrap", (textAreaAttribute.HardWrap ? "hard" : null) },
                        { "MinLength", textAreaAttribute.MinLength },
                        { "MaxLength", textAreaAttribute.MaxLength },
                    }
                };
                metadataAttributes.Add(metaAttribute);
            }

            OnlyNumberAttribute onlyNumberAttribute = GetModelMetadataAttributes(metadata).OfType <OnlyNumberAttribute>().FirstOrDefault();

            if (onlyNumberAttribute != null)
            {
                MetadataAttribute metaAttribute = new MetadataAttribute()
                {
                    AttributeName = "OnlyNumber" + "Attribute",
                    Property      = new Dictionary <string, object>()
                    {
                        { "Declared", true },
                        { "ClassDecorator", "onlyNumber" },
                    }
                };
                metadataAttributes.Add(metaAttribute);
            }

            CurrencyAttribute currencyAttribute = GetModelMetadataAttributes(metadata).OfType <CurrencyAttribute>().FirstOrDefault();

            if (currencyAttribute != null)
            {
                MetadataAttribute metaAttribute = new MetadataAttribute()
                {
                    AttributeName = "Currency" + "Attribute",
                    Property      = new Dictionary <string, object>()
                    {
                        { "Declared", true },
                        { "ClassDecorator", "onlyNumber" },
                        { "Pattern", "currency" },
                    }
                };
                metadataAttributes.Add(metaAttribute);
            }

            NoEspecialCharsAttribute noEspecialCharsAttribute = GetModelMetadataAttributes(metadata).OfType <NoEspecialCharsAttribute>().FirstOrDefault();

            if (noEspecialCharsAttribute != null)
            {
                MetadataAttribute metaAttribute = new MetadataAttribute()
                {
                    AttributeName = "NoEspecialChars" + "Attribute",
                    Property      = new Dictionary <string, object>()
                    {
                        { "Declared", true },
                        { "ClassDecorator", "noCaracEsp" },
                    }
                };
                metadataAttributes.Add(metaAttribute);
            }

            ProgressAttribute progressAttribute = GetModelMetadataAttributes(metadata).OfType <ProgressAttribute>().FirstOrDefault();

            if (progressAttribute != null)
            {
                MetadataAttribute metaAttribute = new MetadataAttribute()
                {
                    AttributeName = "Progress" + "Attribute",
                    Property      = new Dictionary <string, object>()
                    {
                        { "MinValue", progressAttribute.MinValue },
                        { "MaxValue", progressAttribute.MaxValue },
                        { "Step", progressAttribute.Step },
                    }
                };
                metadataAttributes.Add(metaAttribute);
            }

            PlaceHolderAttribute placeHolderAttribute = GetModelMetadataAttributes(metadata).OfType <PlaceHolderAttribute>().FirstOrDefault();

            if (placeHolderAttribute != null)
            {
                MetadataAttribute metaAttribute = new MetadataAttribute()
                {
                    AttributeName = "PlaceHolder" + "Attribute",
                    Property      = new Dictionary <string, object>()
                    {
                        { "Declared", true },
                        { "Text", placeHolderAttribute.Text },
                    }
                };
                metadataAttributes.Add(metaAttribute);
            }
        }
Exemplo n.º 10
0
        private static void addDic(Dictionary <Metadata, List <MetadataAttribute> > dic, Metadata md, MetadataAttribute mdAttr)
        {
            List <MetadataAttribute> list;

            dic.TryGetValue(md, out list);
            if (list != null)
            {
                list.Add(mdAttr);
            }
            else
            {
                list = new List <MetadataAttribute>();
                list.Add(mdAttr);
                dic.Add(md, list);
            }
        }
Exemplo n.º 11
0
        private static XmlNode addFlatDiagramHeadMetadata(
            MetadataAttribute metaAttr, IEnumerable <MetadataAttribute> metaAttrs,
            XmlNode parentNode, XmlDocument descriptionDocument, XmlNode descriptionNode)
        {
            XmlNode metaNode = descriptionDocument.CreateElement(
                DiagramContentModelHelper.StripNSPrefix(DiagramContentModelHelper.Meta),
                DiagramContentModelHelper.NS_URL_ZAI);

            parentNode.AppendChild(metaNode);

            if (metaAttr != null)
            {
                if (metaAttr.Name != DiagramContentModelHelper.NA)
                {
                    XmlDocumentHelper.CreateAppendXmlAttribute(descriptionDocument, metaNode,
                                                               DiagramContentModelHelper.Property,
                                                               metaAttr.Name,
                                                               DiagramContentModelHelper.NS_URL_ZAI);
                }

                if (metaAttr.Value != DiagramContentModelHelper.NA)
                {
                    // TODO: INNER_TEXT vs CONTENT_ATTR => is this specified anywhere?
                    if (
                        DiagramContentModelHelper.DIAGRAM_Purpose.Equals(metaAttr.Name, StringComparison.OrdinalIgnoreCase) ||
                        DiagramContentModelHelper.DIAGRAM_Credentials.Equals(metaAttr.Name, StringComparison.OrdinalIgnoreCase) ||
                        SupportedMetadata_Z39862005.DC_AccessRights.Equals(metaAttr.Name, StringComparison.OrdinalIgnoreCase)
                        //
                        || SupportedMetadata_Z39862005.DC_Creator.Equals(metaAttr.Name, StringComparison.OrdinalIgnoreCase) ||
                        SupportedMetadata_Z39862005.DC_Description.Equals(metaAttr.Name, StringComparison.OrdinalIgnoreCase) ||
                        SupportedMetadata_Z39862005.DC_Title.Equals(metaAttr.Name, StringComparison.OrdinalIgnoreCase) ||
                        SupportedMetadata_Z39862005.DC_Subject.Equals(metaAttr.Name, StringComparison.OrdinalIgnoreCase)
                        )
                    {
                        metaNode.InnerText = metaAttr.Value;
                    }
                    else
                    {
                        XmlDocumentHelper.CreateAppendXmlAttribute(descriptionDocument, metaNode,
                                                                   DiagramContentModelHelper.Content,
                                                                   metaAttr.Value,
                                                                   DiagramContentModelHelper.NS_URL_ZAI);
                    }
                }
            }

            if (metaAttrs != null)
            {
                foreach (MetadataAttribute metaAttribute in metaAttrs)
                {
                    if (metaAttribute.Name == Metadata.PrimaryIdentifierMark)
                    {
                        continue;
                    }

                    if (metaAttribute.Name.StartsWith(XmlReaderWriterHelper.NS_PREFIX_XML + ":"))
                    {
                        XmlDocumentHelper.CreateAppendXmlAttribute(descriptionDocument, metaNode,
                                                                   metaAttribute.Name,
                                                                   metaAttribute.Value,
                                                                   XmlReaderWriterHelper.NS_URL_XML);
                    }
                    else if (metaAttribute.Name.StartsWith(DiagramContentModelHelper.NS_PREFIX_ZAI + ":"))
                    {
                        XmlDocumentHelper.CreateAppendXmlAttribute(descriptionDocument, metaNode,
                                                                   metaAttribute.Name,
                                                                   metaAttribute.Value,
                                                                   DiagramContentModelHelper.NS_URL_ZAI);
                    }
                    else if (metaAttribute.Name.StartsWith(DiagramContentModelHelper.NS_PREFIX_DIAGRAM + ":"))
                    {
                        XmlDocumentHelper.CreateAppendXmlAttribute(descriptionDocument, metaNode,
                                                                   metaAttribute.Name,
                                                                   metaAttribute.Value,
                                                                   DiagramContentModelHelper.NS_URL_DIAGRAM);
                    }
                    else if (DiagramContentModelHelper.Rel.Equals(metaAttribute.Name, StringComparison.OrdinalIgnoreCase) ||
                             DiagramContentModelHelper.Resource.Equals(metaAttribute.Name, StringComparison.OrdinalIgnoreCase) ||
                             DiagramContentModelHelper.About.Equals(metaAttribute.Name, StringComparison.OrdinalIgnoreCase))
                    {
                        XmlDocumentHelper.CreateAppendXmlAttribute(descriptionDocument, metaNode,
                                                                   metaAttribute.Name.ToLower(),
                                                                   metaAttribute.Value,
                                                                   DiagramContentModelHelper.NS_URL_ZAI);
                    }
                    else
                    {
                        XmlDocumentHelper.CreateAppendXmlAttribute(descriptionDocument, metaNode,
                                                                   DiagramContentModelHelper.StripNSPrefix(metaAttribute.Name),
                                                                   metaAttribute.Value,
                                                                   descriptionNode.NamespaceURI);
                    }
                }
            }

            return(metaNode);
        }
Exemplo n.º 12
0
        private static void createDiagramHeadMetadata(XmlDocument descriptionDocument, XmlNode descriptionNode, AlternateContentProperty altProperty)
        {
            XmlNode headNode = descriptionDocument.CreateElement(
                DiagramContentModelHelper.NS_PREFIX_DIAGRAM,
                DiagramContentModelHelper.StripNSPrefix(DiagramContentModelHelper.D_Head),
                DiagramContentModelHelper.NS_URL_DIAGRAM);

            descriptionNode.AppendChild(headNode);

            //TODO: ALWAYS DISABLE THE DEBUG CODE BELOW UNLESS NEEDED FOR TESTING!!
#if false && DEBUG
            foreach (Metadata md in altProperty.Metadatas.ContentsAs_Enumerable)
            {
                addFlatDiagramHeadMetadata(
                    md.NameContentAttribute, md.OtherAttributes.ContentsAs_Enumerable,
                    headNode, descriptionDocument, descriptionNode);
            }
#endif // DEBUG

            List <Metadata> flatMetadatas = new List <Metadata>();
            Dictionary <string, List <Metadata> > groupedMetadata_Id          = new Dictionary <string, List <Metadata> >();
            Dictionary <string, List <Metadata> > groupedMetadata_RelResource = new Dictionary <string, List <Metadata> >();

            foreach (Metadata md in altProperty.Metadatas.ContentsAs_Enumerable)
            {
                if (md.NameContentAttribute == null)
                {
#if DEBUG
                    Debugger.Break();
#endif // DEBUG
                    continue;
                }

                if (
                    md.NameContentAttribute.Name.StartsWith(XmlReaderWriterHelper.NS_PREFIX_XML + ":")

                    //&& (md.OtherAttributes == null || md.OtherAttributes.Count == 0)

                    && (descriptionNode.Attributes == null || descriptionNode.Attributes.GetNamedItem(md.NameContentAttribute.Name) == null))
                {
                    XmlDocumentHelper.CreateAppendXmlAttribute(descriptionDocument, descriptionNode,
                                                               md.NameContentAttribute.Name,
                                                               md.NameContentAttribute.Value,
                                                               XmlReaderWriterHelper.NS_URL_XML);
                }
                else
                {
                    if (md.OtherAttributes != null && md.OtherAttributes.Count > 0)
                    {
                        MetadataAttribute mdAttr_Rel      = null;
                        MetadataAttribute mdAttr_Resource = null;
                        MetadataAttribute mdAttr_Id       = null;
                        bool hasOtherAttrs = false;
                        foreach (MetadataAttribute mdAttr in md.OtherAttributes.ContentsAs_Enumerable)
                        {
                            if (mdAttr.Name == Metadata.PrimaryIdentifierMark)
                            {
                                continue;
                            }

                            if (mdAttr.Name == DiagramContentModelHelper.Rel)
                            {
                                mdAttr_Rel = mdAttr;
                                continue;
                            }
                            if (mdAttr.Name == DiagramContentModelHelper.Resource)
                            {
                                mdAttr_Resource = mdAttr;
                                continue;
                            }
                            if (mdAttr.Name == XmlReaderWriterHelper.XmlId)
                            {
                                mdAttr_Id = mdAttr;
                                continue;
                            }

                            hasOtherAttrs = true;
                        }

                        if (mdAttr_Id != null)
                        {
                            addDic_(groupedMetadata_Id, mdAttr_Id.Value, md);

                            continue;
                        }
                        else if (mdAttr_Rel != null || mdAttr_Resource != null)
                        {
                            string key = (mdAttr_Rel != null ? mdAttr_Rel.Value : "")
                                         + "_-_"
                                         + (mdAttr_Resource != null ? mdAttr_Resource.Value : "");
                            addDic_(groupedMetadata_RelResource, key, md);

                            continue;
                        }
                    }

                    //md.NameContentAttribute.Name != DiagramContentModelHelper.NA
                    //    && md.NameContentAttribute.Value != DiagramContentModelHelper.NA

                    flatMetadatas.Add(md);
                }
            }

            foreach (Metadata md in flatMetadatas)
            {
                addFlatDiagramHeadMetadata(
                    md.NameContentAttribute, md.OtherAttributes.ContentsAs_Enumerable,
                    headNode, descriptionDocument, descriptionNode);
            }

            handleMetadataGroup(headNode, descriptionDocument, descriptionNode, groupedMetadata_Id);
            handleMetadataGroup(headNode, descriptionDocument, descriptionNode, groupedMetadata_RelResource);
        }