public static void Generate( ILogger logger, HostProjectOptions hostProjectOptions, EndpointMethodMetadata endpointMethodMetadata) { ArgumentNullException.ThrowIfNull(logger); ArgumentNullException.ThrowIfNull(hostProjectOptions); ArgumentNullException.ThrowIfNull(endpointMethodMetadata); var sb = new StringBuilder(); AppendUsingStatements(sb, hostProjectOptions, endpointMethodMetadata); sb.AppendLine(); GenerateCodeHelper.AppendGeneratedCodeWarningComment(sb, hostProjectOptions.ToolNameAndVersion); AppendNamespaceAndClassStart(sb, hostProjectOptions, endpointMethodMetadata); AppendConstructor(sb, endpointMethodMetadata); AppendTestMethod(sb, endpointMethodMetadata); if (endpointMethodMetadata.IsContractParameterRequestBodyUsedAsMultipartFormData()) { AppendGetMultipartFormDataContentRequestMethod(sb, endpointMethodMetadata, endpointMethodMetadata.IsContractParameterRequestBodyUsedAsMultipartFormDataAndHasInlineSchemaFile()); } else if (endpointMethodMetadata.IsContractParameterRequestBodyUsedAsMultipartOctetStreamData()) { AppendGetSingleFormDataContentRequestMethod(sb, endpointMethodMetadata); } AppendNamespaceAndClassEnd(sb); SaveFile(logger, sb, hostProjectOptions, endpointMethodMetadata); }