コード例 #1
0
        private static IEnumerable <CSharpAttribute> CreateAttributes(this OperationCmdlet cmdlet)
        {
            if (cmdlet == null)
            {
                throw new ArgumentNullException(nameof(cmdlet));
            }

            // Cmdlet attribute
            yield return(CSharpClassAttributeHelper.CreateCmdletAttribute(cmdlet.Name, cmdlet.ImpactLevel, cmdlet.DefaultParameterSetName));

            // ODataType attribute
            yield return(CSharpClassAttributeHelper.CreateODataTypeAttribute(cmdlet.ResourceTypeFullName, cmdlet.ResourceSubTypeFullNames));

            // ResourceTypePropertyName attribute
            yield return(CSharpClassAttributeHelper.CreateResourceTypePropertyNameAttribute(cmdlet.ResourceTypePropertyName));

            // ResourceReference attribute
            if (cmdlet.IsReferenceable)
            {
                yield return(CSharpClassAttributeHelper.CreateResourceReferenceAttribute());
            }

            // Alias attribute
            if (cmdlet.Aliases != null && cmdlet.Aliases.Any())
            {
                yield return(CSharpClassAttributeHelper.CreateAliasAttribute(cmdlet.Aliases));
            }
        }
コード例 #2
0
        private static IEnumerable <CSharpMethod> CreateMethods(this OperationCmdlet cmdlet)
        {
            if (cmdlet == null)
            {
                throw new ArgumentNullException(nameof(cmdlet));
            }

            // "GetHttpMethod()" method override
            if (cmdlet.HttpMethod != null)
            {
                yield return(CSharpMethodHelper.CreateGetHttpMethodMethod(cmdlet.HttpMethod));
            }

            // Determine whether this cmdlet calls a function
            bool isFunction =
                cmdlet.OperationType == CmdletOperationType.FunctionReturningCollection ||
                cmdlet.OperationType == CmdletOperationType.FunctionReturningEntity;

            // "GetResourcePath()" method override
            yield return(CSharpMethodHelper.CreateGetResourcePathMethod(cmdlet.CallUrl, isFunction));

            // Determine whether this cmdlet creates a reference (i.e. is a POST/PUT "$ref" call)
            if (cmdlet.OperationType == CmdletOperationType.PostRefToCollection)
            {
                // "GetContent()" method override
                yield return(CSharpMethodHelper.CreateGetContentMethodForCreatingReference(cmdlet.IdParameter.Name));
            }
        }
コード例 #3
0
        private static CSharpClass ToCSharpClass(this OperationCmdlet cmdlet)
        {
            if (cmdlet == null)
            {
                throw new ArgumentNullException(nameof(cmdlet));
            }

            // Create the result object
            CSharpClass result = new CSharpClass($"{cmdlet.Name.Verb}_{cmdlet.Name.Noun}")
            {
                DocumentationComment = cmdlet.Documentation.ToCSharpDocumentationComment(),
                AccessModifier       = CSharpAccessModifier.Public,
                BaseType             = cmdlet.OperationType.ToCSharpString(),
                Attributes           = cmdlet.CreateAttributes(),
                Properties           = cmdlet.CreateProperties(),
                Methods = cmdlet.CreateMethods(),
            };

            return(result);
        }