@using System.Text @using System @using AutoRest.Core.Model @using AutoRest.Core.Utilities @using AutoRest.CSharp @using AutoRest.CSharp.Model @inherits AutoRest.Core.Template @{ if (Model.SyncMethods == SyncMethodsGenerationMode.All || Model.SyncMethods == SyncMethodsGenerationMode.Essential) { if (!String.IsNullOrEmpty(Model.Description) || !String.IsNullOrEmpty(Model.Summary)) { @:/// @:@WrapComment("/// ", String.IsNullOrEmpty(Model.Summary) ? Model.Description.EscapeXmlComment() : Model.Summary.EscapeXmlComment()) if (!String.IsNullOrEmpty(Model.ExternalDocsUrl)) { @:/// } @:/// } if (!String.IsNullOrEmpty(Model.Description) && !String.IsNullOrEmpty(Model.Summary)) { @:/// @:@WrapComment("/// ", Model.Description.EscapeXmlComment()) @:/// } @:/// @:/// The operations group for this extension method. @:/// foreach (ParameterCs parameter in Model.LocalParameters) { @:/// @:@WrapComment("/// ", parameter.DocumentationString.EscapeXmlComment()) @:/// } @(Model.GetObsoleteAttribute()) @:@((Model as MethodCs).AccessModifier) static @Model.ReturnTypeString @(Model.Name)(@Model.GetExtensionParameters(Model.GetSyncMethodParameterDeclaration(false))) @:{ if (Model.ReturnType.Body != null) { @:return ((I@(Model.MethodGroup.TypeName))operations).@(Model.Name)Async(@(Model.SyncMethodInvocationArgs)).GetAwaiter().GetResult(); } else if (Model.ReturnType.Headers != null) { @:return ((I@(Model.MethodGroup.TypeName))operations).@(Model.Name)Async(@(Model.SyncMethodInvocationArgs)).GetAwaiter().GetResult(); } else { @:((I@(Model.MethodGroup.TypeName))operations).@(Model.Name)Async(@(Model.SyncMethodInvocationArgs)).GetAwaiter().GetResult(); } @:} @EmptyLine } if (!String.IsNullOrEmpty(Model.Description) || !String.IsNullOrEmpty(Model.Summary)) { @:/// @:@WrapComment("/// ", String.IsNullOrEmpty(Model.Summary) ? Model.Description.EscapeXmlComment() : Model.Summary.EscapeXmlComment()) if (!String.IsNullOrEmpty(Model.ExternalDocsUrl)) { @:/// } @:/// } if (!String.IsNullOrEmpty(Model.Description) && !String.IsNullOrEmpty(Model.Summary)) { @:/// @:@WrapComment("/// ", Model.Description.EscapeXmlComment()) @:/// } @:/// @:/// The operations group for this extension method. @:/// foreach (ParameterCs parameter in Model.LocalParameters) { @:/// @:@WrapComment("/// ", parameter.DocumentationString.EscapeXmlComment()) @:/// } @:/// @:/// The cancellation token. @:/// @(Model.GetObsoleteAttribute()) @:@((Model as MethodCs).AccessModifier) static async @Model.TaskExtensionReturnTypeString @(Model.Name)Async(@Model.GetExtensionParameters(Model.GetAsyncMethodParameterDeclaration())) @:{ if (Model.ReturnType.Body != null) { if (Model.ReturnType.Body.IsPrimaryType(KnownPrimaryType.Stream)) { @:var _result = await operations.@(Model.Name)WithHttpMessagesAsync(@(Model.GetAsyncMethodInvocationArgs("null"))).ConfigureAwait(false); @:_result.Request.Dispose(); @:return _result.Body; } else { @:using (var _result = await operations.@(Model.Name)WithHttpMessagesAsync(@(Model.GetAsyncMethodInvocationArgs("null"))).ConfigureAwait(false)) @:{ @: return _result.Body; @:} } } else if (Model.ReturnType.Headers != null) { @:using (var _result = await operations.@(Model.Name)WithHttpMessagesAsync(@(Model.GetAsyncMethodInvocationArgs("null"))).ConfigureAwait(false)) @:{ @: return _result.Headers; @:} } else { @:(await operations.@(Model.Name)WithHttpMessagesAsync(@(Model.GetAsyncMethodInvocationArgs("null"))).ConfigureAwait(false)).Dispose(); } @:} if (Model.SyncMethods == SyncMethodsGenerationMode.All) { @EmptyLine if (!String.IsNullOrEmpty(Model.Description) || !String.IsNullOrEmpty(Model.Summary)) { @:/// @:@WrapComment("/// ", String.IsNullOrEmpty(Model.Summary) ? Model.Description.EscapeXmlComment() : Model.Summary.EscapeXmlComment()) if (!String.IsNullOrEmpty(Model.ExternalDocsUrl)) { @:/// } @:/// } if (!String.IsNullOrEmpty(Model.Description) && !String.IsNullOrEmpty(Model.Summary)) { @:/// @:@WrapComment("/// ", Model.Description.EscapeXmlComment()) @:/// } @:/// @:/// The operations group for this extension method. @:/// foreach (ParameterCs parameter in Model.LocalParameters) { @:/// @:@WrapComment("/// ", parameter.DocumentationString.EscapeXmlComment()) @:/// } @:/// @:/// Headers that will be added to request. @:/// @(Model.GetObsoleteAttribute()) @:@((Model as MethodCs).AccessModifier) static @Model.OperationResponseReturnTypeString @(Model.Name)WithHttpMessages(@Model.GetExtensionParameters(Model.GetSyncMethodParameterDeclaration(true))) @:{ @: return operations.@(Model.Name)WithHttpMessagesAsync(@(Model.GetAsyncMethodInvocationArgs("customHeaders", "System.Threading.CancellationToken.None"))).ConfigureAwait(false).GetAwaiter().GetResult(); @:} @: } }