powershell/resources/templates/serviceClientBody.ejs (305 lines of code) (raw):
/// <summary>
/// The base URI of the service.
/// </summary>
<%# ToDo: Add support for customBaseUri, priority is low-%>
public System.Uri BaseUri { get; set; }
/// <summary>
/// Gets or sets json serialization settings.
/// </summary>
public Newtonsoft.Json.JsonSerializerSettings SerializationSettings { get; private set; }
/// <summary>
/// Gets or sets json deserialization settings.
/// </summary>
public Newtonsoft.Json.JsonSerializerSettings DeserializationSettings { get; private set; }
<% (project.model.globalParameters || []).filter(p=>p.language.default.name != '$host').forEach(function(parameter) {-%>
/// <summary>
/// <%=project.helper.wrapComments(' ', '/// ', parameter.language.default.description)%>
/// </summary>
<% var type = parameter.schema.type == 'constant' ? parameter.schema.valueType.language.csharp.fullname : parameter.schema.language.csharp.fullname-%>
<%type = type.includes('.') || type == 'string' ? type : type + '?'-%>
<% if (parameter.readOnly || parameter.schema.type == 'constant') {-%>
public <%- type %> <%- parameter.language.default.name%> { get; private set; }
<% } else {-%>
public <%- type %> <%- parameter.language.default.name%> { get; set;}
<% }%>
<%});-%>
<% project.model.operationGroups.filter(methodGroup => methodGroup.$key != '').forEach(function(methodGroup){ -%>
<% var key = project.helper.ConvertToValidMethodGroupKey(methodGroup.$key)-%>
/// <summary>
/// Gets the I<%- project.helper.PascalCase(key) %>Operations
/// </summary>
public virtual I<%- project.helper.PascalCase(key) %>Operations <%- project.helper.PascalCase(methodGroup.$key) %> { get; private set; }
<% }); -%>
/// <summary>
/// Initializes a new instance of the <%-project.model.info.title%> class.
/// </summary>
/// <param name='httpClient'>
/// HttpClient to be used
/// </param>
/// <param name='disposeHttpClient'>
/// True: will dispose the provided httpClient on calling <%-project.model.info.title%>.Dispose(). False: will not dispose provided httpClient</param>
<%# ToDo: Add support for case that ContainsCredentials is false, low priority-%>
protected <%-project.model.info.title%>(System.Net.Http.HttpClient httpClient, bool disposeHttpClient) : base(httpClient, disposeHttpClient)
{
this.Initialize();
}
/// <summary>
/// Initializes a new instance of the <%-project.model.info.title%> class.
/// </summary>
/// <param name='handlers'>
/// Optional. The delegating handlers to add to the http client pipeline.
/// </param>
protected <%-project.model.info.title%>(params System.Net.Http.DelegatingHandler[] handlers) : base(handlers)
{
this.Initialize();
}
/// <summary>
/// Initializes a new instance of the <%-project.model.info.title%> class.
/// </summary>
/// <param name='rootHandler'>
/// Optional. The http client handler used to handle http transport.
/// </param>
/// <param name='handlers'>
/// Optional. The delegating handlers to add to the http client pipeline.
/// </param>
protected <%-project.model.info.title%>(System.Net.Http.HttpClientHandler rootHandler, params System.Net.Http.DelegatingHandler[] handlers) : base(rootHandler, handlers)
{
this.Initialize();
}
<%# ToDo: following true means !IsCustomBaseUri, may need to implement IsCustomBaseUri, low priority -%>
<% if(true) {-%>
/// <summary>
/// Initializes a new instance of the <%-project.model.info.title%> class.
/// </summary>
/// <param name='baseUri'>
/// Optional. The base URI of the service.
/// </param>
/// <param name='handlers'>
/// Optional. The delegating handlers to add to the http client pipeline.
/// </param>
/// <exception cref="System.ArgumentNullException">
/// Thrown when a required parameter is null
/// </exception>
protected <%-project.model.info.title%>(System.Uri baseUri, params System.Net.Http.DelegatingHandler[] handlers) : this(handlers)
{
if (baseUri == null)
{
throw new System.ArgumentNullException("baseUri");
}
this.BaseUri = baseUri;
}
/// <summary>
/// Initializes a new instance of the <%-project.model.info.title%> class.
/// </summary>
/// <param name='baseUri'>
/// Optional. The base URI of the service.
/// </param>
/// <param name='rootHandler'>
/// Optional. The http client handler used to handle http transport.
/// </param>
/// <param name='handlers'>
/// Optional. The delegating handlers to add to the http client pipeline.
/// </param>
/// <exception cref="System.ArgumentNullException">
/// Thrown when a required parameter is null
/// </exception>
protected <%-project.model.info.title%>(System.Uri baseUri, System.Net.Http.HttpClientHandler rootHandler, params System.Net.Http.DelegatingHandler[] handlers) : this(rootHandler, handlers)
{
if (baseUri == null)
{
throw new System.ArgumentNullException("baseUri");
}
this.BaseUri = baseUri;
}
<% } -%>
<% var parameters = (project.model.globalParameters || []).filter(p => p.required && p.readOnly)
if (parameters.length > 0) {-%>
/// <summary>
/// Initializes a new instance of the <%-project.model.info.title%> class.
/// </summary>
<%parameters.filter(p => !project.helper.IsConstantParameter(p)).forEach(function(parameter){-%>
/// <param name='<%-project.helper.CamelCase(parameter.language.default.name)%>'>
/// Required. <%=project.helper.wrapComments(' ', '/// ', parameter.language.default.description)%>
/// </param>
<%});-%>
/// <param name='handlers'>
/// Optional. The delegating handlers to add to the http client pipeline.
/// </param>
/// <exception cref="System.ArgumentNullException">
/// Thrown when a required parameter is null
/// </exception>
<%# ToDo: assume the access is public, need to figure the logic of ConstructorVisibility-%>
public <%-project.model.info.title%>(<%-project.model.language.default.requiredConstructorParametersDeclaration%>, params System.Net.Http.DelegatingHandler[] handlers) : this(handlers)
{
<%parameters.forEach(function(parameter) {-%>
if (<%-project.helper.CamelCase(parameter.language.default.name)%> == null)
{
throw new System.ArgumentNullException("<%-project.helper.CamelCase(parameter.language.default.name)%>");
}
<%});-%>
<%parameters.forEach(function(parameter) {-%>
this.<%-parameter.language.default.name%> = <%-project.helper.CamelCase(parameter.language.default.name)%>;
<%if(parameter.schema.language.csharp.fullname == 'Microsoft.Rest.ServiceClientCredentials') {-%>
if (this.Credentials != null)
{
this.Credentials.InitializeServiceClient(this);
}
<% }-%>
<%});-%>
}
/// <summary>
/// Initializes a new instance of the <%-project.model.info.title%> class.
/// </summary>
<%parameters.filter(p => !project.helper.IsConstantParameter(p)).forEach(function(parameter) {-%>
/// <param name="<%-project.helper.CamelCase(parameter.language.default.name)%>">
/// Required. <%=project.helper.wrapComments(' ', '/// ', parameter.language.default.description)%>
/// </param>
<%});-%>
/// <param name='httpClient'>
/// HttpClient to be used
/// </param>
/// <param name='disposeHttpClient'>
/// True: will dispose the provided httpClient on calling <%-project.model.info.title%>.Dispose(). False: will not dispose provided httpClient</param>
/// <exception cref="System.ArgumentNullException">
/// Thrown when a required parameter is null
/// </exception>
public <%-project.model.info.title%>(<%-project.model.language.default.requiredConstructorParametersDeclaration%>, System.Net.Http.HttpClient httpClient, bool disposeHttpClient) : this(httpClient, disposeHttpClient)
{
<%parameters.forEach(function(parameter) {-%>
if (<%-project.helper.CamelCase(parameter.language.default.name)%> == null)
{
throw new System.ArgumentNullException("<%-project.helper.CamelCase(parameter.language.default.name)%>");
}
<%});-%>
<%parameters.forEach(function(parameter) {-%>
this.<%-parameter.language.default.name%> = <%-project.helper.CamelCase(parameter.language.default.name)%>;
<%if(parameter.schema.language.csharp.fullname == 'Microsoft.Rest.ServiceClientCredentials') {-%>
if (this.Credentials != null)
{
this.Credentials.InitializeServiceClient(this);
}
<% }-%>
<%});-%>
}
/// <summary>
/// Initializes a new instance of the <%-project.model.info.title%> class.
/// </summary>
<%parameters.filter(p => !project.helper.IsConstantParameter(p)).forEach(function(parameter) {-%>
/// <param name="<%-project.helper.CamelCase(parameter.language.default.name)%>">
/// Required. <%=project.helper.wrapComments(' ', '/// ', parameter.language.default.description)%>
/// </param>
<%});-%>
/// <param name='rootHandler'>
/// Optional. The http client handler used to handle http transport.
/// </param>
/// <param name='handlers'>
/// Optional. The delegating handlers to add to the http client pipeline.
/// </param>
/// <exception cref="System.ArgumentNullException">
/// Thrown when a required parameter is null
/// </exception>
public <%-project.model.info.title%>(<%-project.model.language.default.requiredConstructorParametersDeclaration%>, System.Net.Http.HttpClientHandler rootHandler, params System.Net.Http.DelegatingHandler[] handlers) : this(rootHandler, handlers)
{
<%parameters.forEach(function(parameter) {-%>
if (<%-project.helper.CamelCase(parameter.language.default.name)%> == null)
{
throw new System.ArgumentNullException("<%-project.helper.CamelCase(parameter.language.default.name)%>");
}
<%});-%>
<%parameters.forEach(function(parameter) {-%>
this.<%-parameter.language.default.name%> = <%-project.helper.CamelCase(parameter.language.default.name)%>;
<%if(parameter.schema.language.csharp.fullname == 'Microsoft.Rest.ServiceClientCredentials') {-%>
if (this.Credentials != null)
{
this.Credentials.InitializeServiceClient(this);
}
<% }-%>
<%});-%>
}
<%# ToDo: following true means !IsCustomBaseUri, may need to implement IsCustomBaseUri, low priority -%>
<%if (true) {-%>
/// <summary>
/// Initializes a new instance of the <%-project.model.info.title%> class.
/// </summary>
/// <param name='baseUri'>
/// Optional. The base URI of the service.
/// </param>
<%parameters.filter(p => !project.helper.IsConstantParameter(p)).forEach(function(parameter) {-%>
/// <param name="<%-project.helper.CamelCase(parameter.language.default.name)%>">
/// Required. <%=project.helper.wrapComments(' ', '/// ', parameter.language.default.description)%>
/// </param>
<%});-%>
/// <param name='handlers'>
/// Optional. The delegating handlers to add to the http client pipeline.
/// </param>
/// <exception cref="System.ArgumentNullException">
/// Thrown when a required parameter is null
/// </exception>
public <%-project.model.info.title%>(System.Uri baseUri, <%-project.model.language.default.requiredConstructorParametersDeclaration%>, params System.Net.Http.DelegatingHandler[] handlers) : this(handlers)
{
if (baseUri == null)
{
throw new System.ArgumentNullException("baseUri");
}
<%parameters.forEach(function(parameter) {-%>
if (<%-project.helper.CamelCase(parameter.language.default.name)%> == null)
{
throw new System.ArgumentNullException("<%-project.helper.CamelCase(parameter.language.default.name)%>");
}
<%});-%>
this.BaseUri = baseUri;
<%parameters.forEach(function(parameter) {-%>
this.<%-parameter.language.default.name%> = <%-project.helper.CamelCase(parameter.language.default.name)%>;
<%if(parameter.schema.language.csharp.fullname == 'Microsoft.Rest.ServiceClientCredentials') {-%>
if (this.Credentials != null)
{
this.Credentials.InitializeServiceClient(this);
}
<% }-%>
<%});-%>
}
/// <summary>
/// Initializes a new instance of the <%-project.model.info.title%> class.
/// </summary>
/// <param name='baseUri'>
/// Optional. The base URI of the service.
/// </param>
<%parameters.filter(p => !project.helper.IsConstantParameter(p)).forEach(function(parameter) {-%>
/// <param name="<%-project.helper.CamelCase(parameter.language.default.name)%>">
/// Required. <%=project.helper.wrapComments(' ', '/// ', parameter.language.default.description)%>
/// </param>
<%});-%>
/// <param name='rootHandler'>
/// Optional. The http client handler used to handle http transport.
/// </param>
/// <param name='handlers'>
/// Optional. The delegating handlers to add to the http client pipeline.
/// </param>
/// <exception cref="System.ArgumentNullException">
/// Thrown when a required parameter is null
/// </exception>
public <%-project.model.info.title%>(System.Uri baseUri, <%-project.model.language.default.requiredConstructorParametersDeclaration%>, System.Net.Http.HttpClientHandler rootHandler, params System.Net.Http.DelegatingHandler[] handlers) : this(rootHandler, handlers)
{
if (baseUri == null)
{
throw new System.ArgumentNullException("baseUri");
}
<%parameters.forEach(function(parameter) {-%>
if (<%-project.helper.CamelCase(parameter.language.default.name)%> == null)
{
throw new System.ArgumentNullException("<%-project.helper.CamelCase(parameter.language.default.name)%>");
}
<%});-%>
this.BaseUri = baseUri;
<%parameters.forEach(function(parameter) {-%>
this.<%-parameter.language.default.name%> = <%-project.helper.CamelCase(parameter.language.default.name)%>;
<%if(parameter.schema.language.csharp.fullname == 'Microsoft.Rest.ServiceClientCredentials') {-%>
if (this.Credentials != null)
{
this.Credentials.InitializeServiceClient(this);
}
<% }-%>
<%});-%>
}
<%}-%>
<% }-%>