コード例 #1
0
        public static Property FromContentTypeElement(ElementMetadataBase element)
        {
            if (IsContentTypeSupported(element.Type))
            {
                return(new Property(element.Codename, ManagementElementTypesDictionary[element.Type], element.Id.ToString()));
            }

            if (element.Type == ElementMetadataType.Guidelines)
            {
                throw new UnsupportedTypeException();
            }

            throw new ArgumentException($"Unknown Content Type {element.Type}", nameof(element));
        }
コード例 #2
0
        private static void Validate(
            ElementMetadataBase element,
            IEnumerable <ContentTypeSnippetModel> managementSnippets)
        {
            if (element == null)
            {
                throw new ArgumentNullException(nameof(element));
            }

            if (managementSnippets == null)
            {
                throw new ArgumentNullException(nameof(managementSnippets));
            }
        }
コード例 #3
0
        public static IEnumerable <ElementMetadataBase> GetManagementContentTypeSnippetElements(
            ElementMetadataBase element,
            IEnumerable <ContentTypeSnippetModel> managementSnippets)
        {
            Validate(element, managementSnippets);

            if (element.Type != ElementMetadataType.ContentTypeSnippet)
            {
                return(null);
            }

            var managementSnippet = managementSnippets.FirstOrDefault(s => element.Codename == s.Codename);

            if (managementSnippet == null)
            {
                throw new ArgumentException($"{nameof(managementSnippet)} shouldn't be null.");
            }

            return(managementSnippet.Elements);
        }
コード例 #4
0
ファイル: ElementBuilder.cs プロジェクト: rquackenbush/VPL
        private void SetElementProperties(IElement element, ElementMetadataBase elementMetadata)
        {
            if (element == null)
            {
                throw new ArgumentNullException(nameof(element));
            }
            if (elementMetadata == null)
            {
                throw new ArgumentNullException(nameof(elementMetadata));
            }

            //Parameters
            if (elementMetadata.Parameters != null)
            {
                //Deal with each parameter
                foreach (var parameterMetadata in elementMetadata.Parameters)
                {
                    //Find the parameter in question
                    var parameter = element.Parameters.FirstOrDefault(p => p.Id == parameterMetadata.Id);

                    if (parameter == null)
                    {
                        Console.WriteLine($"Unable to find parameter {parameterMetadata.Id}");
                    }
                    else
                    {
                        //Set the value of the parameter
                        parameter.SetValue(parameterMetadata.Value);

                        if (parameterMetadata.Operator != null)
                        {
                            parameter.Operator = (IOperator)(CreateElement(element.Owner, parameterMetadata.Operator));
                        }
                    }
                }
            }
        }
コード例 #5
0
    /// <summary>
    /// Transform the base class to the specific element.
    /// </summary>
    /// <param name="source">ElementMetadataBase class</param>
    /// <returns></returns>
    public static T ToElement <T>(this ElementMetadataBase source) where T : ElementMetadataBase
    {
        if (source == null)
        {
            return(null);
        }

        switch (source.Type)
        {
        case ElementMetadataType.Text:
            if (source.Type != ElementMetadataType.Text)
            {
                throw new InvalidOperationException($"Type {source.Type} cannot be converted to {nameof(TextElementMetadataModel)}");
            }

            return(source as T);

        case ElementMetadataType.RichText:
            if (source.Type != ElementMetadataType.RichText)
            {
                throw new InvalidOperationException($"Type {source.Type} cannot be converted to {nameof(RichTextElementMetadataModel)}");
            }

            return(source as T);

        case ElementMetadataType.Number:
            if (source.Type != ElementMetadataType.Number)
            {
                throw new InvalidOperationException($"Type {source.Type} cannot be converted to {nameof(NumberElementMetadataModel)}");
            }

            return(source as T);

        case ElementMetadataType.MultipleChoice:
            if (source.Type != ElementMetadataType.MultipleChoice)
            {
                throw new InvalidOperationException($"Type {source.Type} cannot be converted to {nameof(MultipleChoiceElementMetadataModel)}");
            }

            return(source as T);

        case ElementMetadataType.DateTime:
            if (source.Type != ElementMetadataType.DateTime)
            {
                throw new InvalidOperationException($"Type {source.Type} cannot be converted to {nameof(DateTimeElementMetadataModel)}");
            }

            return(source as T);

        case ElementMetadataType.Asset:
            if (source.Type != ElementMetadataType.Asset)
            {
                throw new InvalidOperationException($"Type {source.Type} cannot be converted to {nameof(AssetElementMetadataModel)}");
            }

            return(source as T);

        case ElementMetadataType.LinkedItems:
            if (source.Type != ElementMetadataType.LinkedItems)
            {
                throw new InvalidOperationException($"Type {source.Type} cannot be converted to {nameof(LinkedItemsElementMetadataModel)}");
            }

            return(source as T);

        case ElementMetadataType.Guidelines:
            if (source.Type != ElementMetadataType.Guidelines)
            {
                throw new InvalidOperationException($"Type {source.Type} cannot be converted to {nameof(GuidelinesElementMetadataModel)}");
            }

            return(source as T);

        case ElementMetadataType.Taxonomy:
            if (source.Type != ElementMetadataType.Taxonomy)
            {
                throw new InvalidOperationException($"Type {source.Type} cannot be converted to {nameof(TaxonomyElementMetadataModel)}");
            }

            return(source as T);

        case ElementMetadataType.UrlSlug:
            if (source.Type != ElementMetadataType.UrlSlug)
            {
                throw new InvalidOperationException($"Type {source.Type} cannot be converted to {nameof(UrlSlugElementMetadataModel)}");
            }

            return(source as T);

        case ElementMetadataType.ContentTypeSnippet:
            if (source.Type != ElementMetadataType.ContentTypeSnippet)
            {
                throw new InvalidOperationException($"Type {source.Type} cannot be converted to {nameof(ContentTypeSnippetElementMetadataModel)}");
            }

            return(source as T);

        case ElementMetadataType.Custom:
            if (source.Type != ElementMetadataType.Custom)
            {
                throw new InvalidOperationException($"Type {source.Type} cannot be converted to {nameof(CustomElementMetadataModel)}");
            }

            return(source as T);

        case ElementMetadataType.Subpages:
            if (source.Type != ElementMetadataType.Subpages)
            {
                throw new InvalidOperationException($"Type {source.Type} cannot be converted to {nameof(SubpagesElementMetadataModel)}");
            }

            return(source as T);

        default: throw new InvalidOperationException($"Type {source.Type} cannot be converted to any known element");
        }
    }
コード例 #6
0
        public void FromContentTypeElement_ManagementApiModel_Returns(string expectedTypeName, string expectedCodename, ElementMetadataBase element)
        {
            var property = Property.FromContentTypeElement(element);

            Assert.Equal(expectedCodename, property.Identifier);
            Assert.Equal(expectedTypeName, property.TypeName);
            Assert.Equal(element.Id.ToString(), property.Id);
        }