diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/CSharpClientCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/CSharpClientCodegen.java index 0e52caf072d..d52b817990f 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/CSharpClientCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/CSharpClientCodegen.java @@ -1025,7 +1025,7 @@ public class CSharpClientCodegen extends AbstractCSharpCodegen { supportingFiles.add(new SupportingFile("ApiFactory.mustache", clientPackageDir, "ApiFactory.cs")); supportingFiles.add(new SupportingFile("DateTimeJsonConverter.mustache", clientPackageDir, "DateTimeJsonConverter.cs")); supportingFiles.add(new SupportingFile("DateTimeNullableJsonConverter.mustache", clientPackageDir, "DateTimeNullableJsonConverter.cs")); - supportingFiles.add(new SupportingFile("ApiResponseEventArgs.mustache", clientPackageDir, "ApiResponseEventArgs.cs")); + supportingFiles.add(new SupportingFile("ApiResponseEventArgs`1.mustache", clientPackageDir, "ApiResponseEventArgs.cs")); supportingFiles.add(new SupportingFile("JsonSerializerOptionsProvider.mustache", clientPackageDir, "JsonSerializerOptionsProvider.cs")); supportingFiles.add(new SupportingFile("CookieContainer.mustache", clientPackageDir, "CookieContainer.cs")); supportingFiles.add(new SupportingFile("Option.mustache", clientPackageDir, "Option.cs")); diff --git a/modules/openapi-generator/src/main/resources/csharp/libraries/generichost/ApiResponseEventArgs.mustache b/modules/openapi-generator/src/main/resources/csharp/libraries/generichost/ApiResponseEventArgs.mustache deleted file mode 100644 index a79086e63ad..00000000000 --- a/modules/openapi-generator/src/main/resources/csharp/libraries/generichost/ApiResponseEventArgs.mustache +++ /dev/null @@ -1,58 +0,0 @@ -using System; -using System.Net; - -namespace {{packageName}}.{{clientPackage}} -{ - /// - /// Useful for tracking server health. - /// - {{>visibility}} class ApiResponseEventArgs : EventArgs - { - /// - /// The time the request was sent. - /// - public DateTime RequestedAt { get; } - - /// - /// The time the response was received. - /// - public DateTime ReceivedAt { get; } - - /// - /// The HttpStatusCode received. - /// - public HttpStatusCode HttpStatus { get; } - - /// - /// The path requested. - /// - public string PathFormat { get; } - - /// - /// The elapsed time from request to response. - /// - public TimeSpan ToTimeSpan => this.ReceivedAt - this.RequestedAt; - - /// - /// The path - /// - public string Path { get; } - - /// - /// The event args used to track server health. - /// - /// - /// - /// - /// - /// - public ApiResponseEventArgs(DateTime requestedAt, DateTime receivedAt, HttpStatusCode httpStatus, string pathFormat, string path) - { - RequestedAt = requestedAt; - ReceivedAt = receivedAt; - HttpStatus = httpStatus; - PathFormat = pathFormat; - Path = path; - } - } -} diff --git a/modules/openapi-generator/src/main/resources/csharp/libraries/generichost/ApiResponseEventArgs`1.mustache b/modules/openapi-generator/src/main/resources/csharp/libraries/generichost/ApiResponseEventArgs`1.mustache new file mode 100644 index 00000000000..6e8d3c4780e --- /dev/null +++ b/modules/openapi-generator/src/main/resources/csharp/libraries/generichost/ApiResponseEventArgs`1.mustache @@ -0,0 +1,24 @@ +using System; + +namespace {{packageName}}.{{clientPackage}} +{ + /// + /// Useful for tracking server health + /// + {{>visibility}} class ApiResponseEventArgs : EventArgs + { + /// + /// The ApiResponse + /// + public ApiResponse ApiResponse { get; } + + /// + /// The ApiResponseEventArgs + /// + /// + public ApiResponseEventArgs(ApiResponse apiResponse) + { + ApiResponse = apiResponse; + } + } +} diff --git a/modules/openapi-generator/src/main/resources/csharp/libraries/generichost/HostConfiguration.mustache b/modules/openapi-generator/src/main/resources/csharp/libraries/generichost/HostConfiguration.mustache index 921149b17e6..ec0a819fb75 100644 --- a/modules/openapi-generator/src/main/resources/csharp/libraries/generichost/HostConfiguration.mustache +++ b/modules/openapi-generator/src/main/resources/csharp/libraries/generichost/HostConfiguration.mustache @@ -49,6 +49,7 @@ namespace {{packageName}}.{{clientPackage}} {{/models}} _services.AddSingleton(new JsonSerializerOptionsProvider(_jsonOptions)); _services.AddSingleton();{{#apiInfo}}{{#apis}} + _services.AddSingleton<{{classname}}Events>(); _services.AddTransient<{{interfacePrefix}}{{classname}}, {{classname}}>();{{/apis}}{{/apiInfo}} } diff --git a/modules/openapi-generator/src/main/resources/csharp/libraries/generichost/api.mustache b/modules/openapi-generator/src/main/resources/csharp/libraries/generichost/api.mustache index 0c1856bfbf6..75676b14a38 100644 --- a/modules/openapi-generator/src/main/resources/csharp/libraries/generichost/api.mustache +++ b/modules/openapi-generator/src/main/resources/csharp/libraries/generichost/api.mustache @@ -13,6 +13,7 @@ using System.Net.Http; using System.Net.Http.Headers; using System.Text.Json; using {{packageName}}.{{clientPackage}}; +using {{packageName}}.{{apiPackage}}; {{#hasImport}} using {{packageName}}.{{modelPackage}}; {{/hasImport}} @@ -26,6 +27,11 @@ namespace {{packageName}}.{{interfacePrefix}}{{apiPackage}} /// {{>visibility}} interface {{interfacePrefix}}{{classname}} : IApi { + /// + /// The class containing the events + /// + {{classname}}Events Events { get; } + {{#operation}} /// /// {{summary}} @@ -62,6 +68,28 @@ namespace {{packageName}}.{{interfacePrefix}}{{apiPackage}} namespace {{packageName}}.{{apiPackage}} { + /// + /// Represents a collection of functions to interact with the API endpoints + /// This class is registered as transient. + /// + {{>visibility}} class {{classname}}Events + { + {{#lambda.trimTrailingWhiteSpace}} + {{#operation}} + /// + /// The event raised after the server response + /// + public event EventHandler>{{nrt?}} On{{operationId}}; + + internal void ExecuteOn{{operationId}}(ApiResponse<{{{returnType}}}{{^returnType}}object{{/returnType}}> apiResponse) + { + On{{operationId}}?.Invoke(this, new ApiResponseEventArgs<{{{returnType}}}{{^returnType}}object{{/returnType}}>(apiResponse)); + } + + {{/operation}} + {{/lambda.trimTrailingWhiteSpace}} + } + /// /// Represents a collection of functions to interact with the API endpoints /// @@ -77,7 +105,12 @@ namespace {{packageName}}.{{apiPackage}} /// /// The HttpClient /// - public HttpClient HttpClient { get; }{{#hasApiKeyMethods}} + public HttpClient HttpClient { get; } + + /// + /// The class containing the events + /// + public {{classname}}Events Events { get; }{{#hasApiKeyMethods}} /// /// A token provider of type @@ -108,7 +141,7 @@ namespace {{packageName}}.{{apiPackage}} /// Initializes a new instance of the class. /// /// - public {{classname}}(ILogger<{{classname}}> logger, HttpClient httpClient, JsonSerializerOptionsProvider jsonSerializerOptionsProvider{{#hasApiKeyMethods}}, + public {{classname}}(ILogger<{{classname}}> logger, HttpClient httpClient, JsonSerializerOptionsProvider jsonSerializerOptionsProvider, {{classname}}Events {{#lambda.camelcase_param}}{{classname}}Events{{/lambda.camelcase_param}}{{#hasApiKeyMethods}}, TokenProvider apiKeyProvider{{/hasApiKeyMethods}}{{#hasHttpBearerMethods}}, TokenProvider bearerTokenProvider{{/hasHttpBearerMethods}}{{#hasHttpBasicMethods}}, TokenProvider basicTokenProvider{{/hasHttpBasicMethods}}{{#hasHttpSignatureMethods}}, @@ -117,7 +150,8 @@ namespace {{packageName}}.{{apiPackage}} { _jsonSerializerOptions = jsonSerializerOptionsProvider.Options; Logger = logger; - HttpClient = httpClient;{{#hasApiKeyMethods}} + HttpClient = httpClient; + Events = {{#lambda.camelcase_param}}{{classname}}Events{{/lambda.camelcase_param}};{{#hasApiKeyMethods}} ApiKeyProvider = apiKeyProvider;{{/hasApiKeyMethods}}{{#hasHttpBearerMethods}} BearerTokenProvider = bearerTokenProvider;{{/hasHttpBearerMethods}}{{#hasHttpBasicMethods}} BasicTokenProvider = basicTokenProvider;{{/hasHttpBasicMethods}}{{#hasHttpSignatureMethods}} @@ -496,10 +530,12 @@ namespace {{packageName}}.{{apiPackage}} { string responseContentLocalVar = await httpResponseMessageLocalVar.Content.ReadAsStringAsync({{#net60OrLater}}cancellationToken{{/net60OrLater}}).ConfigureAwait(false); - ApiResponse<{{#returnType}}{{{returnType}}}{{/returnType}}{{^returnType}}object{{/returnType}}> apiResponseLocalVar = new ApiResponse<{{#returnType}}{{{returnType}}}{{/returnType}}{{^returnType}}object{{/returnType}}>(httpRequestMessageLocalVar, httpResponseMessageLocalVar, responseContentLocalVar, "{{path}}", requestedAtLocalVar, _jsonSerializerOptions); + ApiResponse<{{{returnType}}}{{^returnType}}object{{/returnType}}> apiResponseLocalVar = new ApiResponse<{{#returnType}}{{{returnType}}}{{/returnType}}{{^returnType}}object{{/returnType}}>(httpRequestMessageLocalVar, httpResponseMessageLocalVar, responseContentLocalVar, "{{path}}", requestedAtLocalVar, _jsonSerializerOptions); After{{operationId}}DefaultImplementation({{#lambda.joinWithComma}}apiResponseLocalVar {{#allParams}}{{paramName}} {{/allParams}}{{/lambda.joinWithComma}}); + Events.ExecuteOn{{operationId}}(apiResponseLocalVar); + {{#authMethods}} if (apiResponseLocalVar.StatusCode == (HttpStatusCode) 429) foreach(TokenBase tokenBaseLocalVar in tokenBaseLocalVars) diff --git a/samples/client/petstore/csharp/OpenAPIClient-generichost-net6.0-nrt/src/Org.OpenAPITools/Api/AnotherFakeApi.cs b/samples/client/petstore/csharp/OpenAPIClient-generichost-net6.0-nrt/src/Org.OpenAPITools/Api/AnotherFakeApi.cs index a0bfbba9827..81e2eb36092 100644 --- a/samples/client/petstore/csharp/OpenAPIClient-generichost-net6.0-nrt/src/Org.OpenAPITools/Api/AnotherFakeApi.cs +++ b/samples/client/petstore/csharp/OpenAPIClient-generichost-net6.0-nrt/src/Org.OpenAPITools/Api/AnotherFakeApi.cs @@ -19,6 +19,7 @@ using System.Net.Http; using System.Net.Http.Headers; using System.Text.Json; using Org.OpenAPITools.Client; +using Org.OpenAPITools.Api; using Org.OpenAPITools.Model; namespace Org.OpenAPITools.IApi @@ -29,6 +30,11 @@ namespace Org.OpenAPITools.IApi /// public interface IAnotherFakeApi : IApi { + /// + /// The class containing the events + /// + AnotherFakeApiEvents Events { get; } + /// /// To test special tags /// @@ -56,6 +62,23 @@ namespace Org.OpenAPITools.IApi namespace Org.OpenAPITools.Api { + /// + /// Represents a collection of functions to interact with the API endpoints + /// This class is registered as transient. + /// + public class AnotherFakeApiEvents + { + /// + /// The event raised after the server response + /// + public event EventHandler>? OnCall123TestSpecialTags; + + internal void ExecuteOnCall123TestSpecialTags(ApiResponse apiResponse) + { + OnCall123TestSpecialTags?.Invoke(this, new ApiResponseEventArgs(apiResponse)); + } + } + /// /// Represents a collection of functions to interact with the API endpoints /// @@ -73,6 +96,11 @@ namespace Org.OpenAPITools.Api /// public HttpClient HttpClient { get; } + /// + /// The class containing the events + /// + public AnotherFakeApiEvents Events { get; } + /// /// A token provider of type /// @@ -102,7 +130,7 @@ namespace Org.OpenAPITools.Api /// Initializes a new instance of the class. /// /// - public AnotherFakeApi(ILogger logger, HttpClient httpClient, JsonSerializerOptionsProvider jsonSerializerOptionsProvider, + public AnotherFakeApi(ILogger logger, HttpClient httpClient, JsonSerializerOptionsProvider jsonSerializerOptionsProvider, AnotherFakeApiEvents anotherFakeApiEvents, TokenProvider apiKeyProvider, TokenProvider bearerTokenProvider, TokenProvider basicTokenProvider, @@ -112,6 +140,7 @@ namespace Org.OpenAPITools.Api _jsonSerializerOptions = jsonSerializerOptionsProvider.Options; Logger = logger; HttpClient = httpClient; + Events = anotherFakeApiEvents; ApiKeyProvider = apiKeyProvider; BearerTokenProvider = bearerTokenProvider; BasicTokenProvider = basicTokenProvider; @@ -253,6 +282,8 @@ namespace Org.OpenAPITools.Api AfterCall123TestSpecialTagsDefaultImplementation(apiResponseLocalVar, modelClient); + Events.ExecuteOnCall123TestSpecialTags(apiResponseLocalVar); + return apiResponseLocalVar; } } diff --git a/samples/client/petstore/csharp/OpenAPIClient-generichost-net6.0-nrt/src/Org.OpenAPITools/Api/DefaultApi.cs b/samples/client/petstore/csharp/OpenAPIClient-generichost-net6.0-nrt/src/Org.OpenAPITools/Api/DefaultApi.cs index 1324a529bd5..14e463f368d 100644 --- a/samples/client/petstore/csharp/OpenAPIClient-generichost-net6.0-nrt/src/Org.OpenAPITools/Api/DefaultApi.cs +++ b/samples/client/petstore/csharp/OpenAPIClient-generichost-net6.0-nrt/src/Org.OpenAPITools/Api/DefaultApi.cs @@ -19,6 +19,7 @@ using System.Net.Http; using System.Net.Http.Headers; using System.Text.Json; using Org.OpenAPITools.Client; +using Org.OpenAPITools.Api; using Org.OpenAPITools.Model; namespace Org.OpenAPITools.IApi @@ -29,6 +30,11 @@ namespace Org.OpenAPITools.IApi /// public interface IDefaultApi : IApi { + /// + /// The class containing the events + /// + DefaultApiEvents Events { get; } + /// /// /// @@ -98,6 +104,43 @@ namespace Org.OpenAPITools.IApi namespace Org.OpenAPITools.Api { + /// + /// Represents a collection of functions to interact with the API endpoints + /// This class is registered as transient. + /// + public class DefaultApiEvents + { + /// + /// The event raised after the server response + /// + public event EventHandler>? OnFooGet; + + internal void ExecuteOnFooGet(ApiResponse apiResponse) + { + OnFooGet?.Invoke(this, new ApiResponseEventArgs(apiResponse)); + } + + /// + /// The event raised after the server response + /// + public event EventHandler>? OnGetCountry; + + internal void ExecuteOnGetCountry(ApiResponse apiResponse) + { + OnGetCountry?.Invoke(this, new ApiResponseEventArgs(apiResponse)); + } + + /// + /// The event raised after the server response + /// + public event EventHandler>>? OnHello; + + internal void ExecuteOnHello(ApiResponse> apiResponse) + { + OnHello?.Invoke(this, new ApiResponseEventArgs>(apiResponse)); + } + } + /// /// Represents a collection of functions to interact with the API endpoints /// @@ -115,6 +158,11 @@ namespace Org.OpenAPITools.Api /// public HttpClient HttpClient { get; } + /// + /// The class containing the events + /// + public DefaultApiEvents Events { get; } + /// /// A token provider of type /// @@ -144,7 +192,7 @@ namespace Org.OpenAPITools.Api /// Initializes a new instance of the class. /// /// - public DefaultApi(ILogger logger, HttpClient httpClient, JsonSerializerOptionsProvider jsonSerializerOptionsProvider, + public DefaultApi(ILogger logger, HttpClient httpClient, JsonSerializerOptionsProvider jsonSerializerOptionsProvider, DefaultApiEvents defaultApiEvents, TokenProvider apiKeyProvider, TokenProvider bearerTokenProvider, TokenProvider basicTokenProvider, @@ -154,6 +202,7 @@ namespace Org.OpenAPITools.Api _jsonSerializerOptions = jsonSerializerOptionsProvider.Options; Logger = logger; HttpClient = httpClient; + Events = defaultApiEvents; ApiKeyProvider = apiKeyProvider; BearerTokenProvider = bearerTokenProvider; BasicTokenProvider = basicTokenProvider; @@ -259,6 +308,8 @@ namespace Org.OpenAPITools.Api AfterFooGetDefaultImplementation(apiResponseLocalVar); + Events.ExecuteOnFooGet(apiResponseLocalVar); + return apiResponseLocalVar; } } @@ -401,6 +452,8 @@ namespace Org.OpenAPITools.Api AfterGetCountryDefaultImplementation(apiResponseLocalVar, country); + Events.ExecuteOnGetCountry(apiResponseLocalVar); + return apiResponseLocalVar; } } @@ -510,6 +563,8 @@ namespace Org.OpenAPITools.Api AfterHelloDefaultImplementation(apiResponseLocalVar); + Events.ExecuteOnHello(apiResponseLocalVar); + return apiResponseLocalVar; } } diff --git a/samples/client/petstore/csharp/OpenAPIClient-generichost-net6.0-nrt/src/Org.OpenAPITools/Api/FakeApi.cs b/samples/client/petstore/csharp/OpenAPIClient-generichost-net6.0-nrt/src/Org.OpenAPITools/Api/FakeApi.cs index 7868e9af673..611c2ce7ff0 100644 --- a/samples/client/petstore/csharp/OpenAPIClient-generichost-net6.0-nrt/src/Org.OpenAPITools/Api/FakeApi.cs +++ b/samples/client/petstore/csharp/OpenAPIClient-generichost-net6.0-nrt/src/Org.OpenAPITools/Api/FakeApi.cs @@ -19,6 +19,7 @@ using System.Net.Http; using System.Net.Http.Headers; using System.Text.Json; using Org.OpenAPITools.Client; +using Org.OpenAPITools.Api; using Org.OpenAPITools.Model; namespace Org.OpenAPITools.IApi @@ -29,6 +30,11 @@ namespace Org.OpenAPITools.IApi /// public interface IFakeApi : IApi { + /// + /// The class containing the events + /// + FakeApiEvents Events { get; } + /// /// Health check endpoint /// @@ -446,6 +452,163 @@ namespace Org.OpenAPITools.IApi namespace Org.OpenAPITools.Api { + /// + /// Represents a collection of functions to interact with the API endpoints + /// This class is registered as transient. + /// + public class FakeApiEvents + { + /// + /// The event raised after the server response + /// + public event EventHandler>? OnFakeHealthGet; + + internal void ExecuteOnFakeHealthGet(ApiResponse apiResponse) + { + OnFakeHealthGet?.Invoke(this, new ApiResponseEventArgs(apiResponse)); + } + + /// + /// The event raised after the server response + /// + public event EventHandler>? OnFakeOuterBooleanSerialize; + + internal void ExecuteOnFakeOuterBooleanSerialize(ApiResponse apiResponse) + { + OnFakeOuterBooleanSerialize?.Invoke(this, new ApiResponseEventArgs(apiResponse)); + } + + /// + /// The event raised after the server response + /// + public event EventHandler>? OnFakeOuterCompositeSerialize; + + internal void ExecuteOnFakeOuterCompositeSerialize(ApiResponse apiResponse) + { + OnFakeOuterCompositeSerialize?.Invoke(this, new ApiResponseEventArgs(apiResponse)); + } + + /// + /// The event raised after the server response + /// + public event EventHandler>? OnFakeOuterNumberSerialize; + + internal void ExecuteOnFakeOuterNumberSerialize(ApiResponse apiResponse) + { + OnFakeOuterNumberSerialize?.Invoke(this, new ApiResponseEventArgs(apiResponse)); + } + + /// + /// The event raised after the server response + /// + public event EventHandler>? OnFakeOuterStringSerialize; + + internal void ExecuteOnFakeOuterStringSerialize(ApiResponse apiResponse) + { + OnFakeOuterStringSerialize?.Invoke(this, new ApiResponseEventArgs(apiResponse)); + } + + /// + /// The event raised after the server response + /// + public event EventHandler>>? OnGetArrayOfEnums; + + internal void ExecuteOnGetArrayOfEnums(ApiResponse> apiResponse) + { + OnGetArrayOfEnums?.Invoke(this, new ApiResponseEventArgs>(apiResponse)); + } + + /// + /// The event raised after the server response + /// + public event EventHandler>? OnTestBodyWithFileSchema; + + internal void ExecuteOnTestBodyWithFileSchema(ApiResponse apiResponse) + { + OnTestBodyWithFileSchema?.Invoke(this, new ApiResponseEventArgs(apiResponse)); + } + + /// + /// The event raised after the server response + /// + public event EventHandler>? OnTestBodyWithQueryParams; + + internal void ExecuteOnTestBodyWithQueryParams(ApiResponse apiResponse) + { + OnTestBodyWithQueryParams?.Invoke(this, new ApiResponseEventArgs(apiResponse)); + } + + /// + /// The event raised after the server response + /// + public event EventHandler>? OnTestClientModel; + + internal void ExecuteOnTestClientModel(ApiResponse apiResponse) + { + OnTestClientModel?.Invoke(this, new ApiResponseEventArgs(apiResponse)); + } + + /// + /// The event raised after the server response + /// + public event EventHandler>? OnTestEndpointParameters; + + internal void ExecuteOnTestEndpointParameters(ApiResponse apiResponse) + { + OnTestEndpointParameters?.Invoke(this, new ApiResponseEventArgs(apiResponse)); + } + + /// + /// The event raised after the server response + /// + public event EventHandler>? OnTestEnumParameters; + + internal void ExecuteOnTestEnumParameters(ApiResponse apiResponse) + { + OnTestEnumParameters?.Invoke(this, new ApiResponseEventArgs(apiResponse)); + } + + /// + /// The event raised after the server response + /// + public event EventHandler>? OnTestGroupParameters; + + internal void ExecuteOnTestGroupParameters(ApiResponse apiResponse) + { + OnTestGroupParameters?.Invoke(this, new ApiResponseEventArgs(apiResponse)); + } + + /// + /// The event raised after the server response + /// + public event EventHandler>? OnTestInlineAdditionalProperties; + + internal void ExecuteOnTestInlineAdditionalProperties(ApiResponse apiResponse) + { + OnTestInlineAdditionalProperties?.Invoke(this, new ApiResponseEventArgs(apiResponse)); + } + + /// + /// The event raised after the server response + /// + public event EventHandler>? OnTestJsonFormData; + + internal void ExecuteOnTestJsonFormData(ApiResponse apiResponse) + { + OnTestJsonFormData?.Invoke(this, new ApiResponseEventArgs(apiResponse)); + } + + /// + /// The event raised after the server response + /// + public event EventHandler>? OnTestQueryParameterCollectionFormat; + + internal void ExecuteOnTestQueryParameterCollectionFormat(ApiResponse apiResponse) + { + OnTestQueryParameterCollectionFormat?.Invoke(this, new ApiResponseEventArgs(apiResponse)); + } + } + /// /// Represents a collection of functions to interact with the API endpoints /// @@ -463,6 +626,11 @@ namespace Org.OpenAPITools.Api /// public HttpClient HttpClient { get; } + /// + /// The class containing the events + /// + public FakeApiEvents Events { get; } + /// /// A token provider of type /// @@ -492,7 +660,7 @@ namespace Org.OpenAPITools.Api /// Initializes a new instance of the class. /// /// - public FakeApi(ILogger logger, HttpClient httpClient, JsonSerializerOptionsProvider jsonSerializerOptionsProvider, + public FakeApi(ILogger logger, HttpClient httpClient, JsonSerializerOptionsProvider jsonSerializerOptionsProvider, FakeApiEvents fakeApiEvents, TokenProvider apiKeyProvider, TokenProvider bearerTokenProvider, TokenProvider basicTokenProvider, @@ -502,6 +670,7 @@ namespace Org.OpenAPITools.Api _jsonSerializerOptions = jsonSerializerOptionsProvider.Options; Logger = logger; HttpClient = httpClient; + Events = fakeApiEvents; ApiKeyProvider = apiKeyProvider; BearerTokenProvider = bearerTokenProvider; BasicTokenProvider = basicTokenProvider; @@ -607,6 +776,8 @@ namespace Org.OpenAPITools.Api AfterFakeHealthGetDefaultImplementation(apiResponseLocalVar); + Events.ExecuteOnFakeHealthGet(apiResponseLocalVar); + return apiResponseLocalVar; } } @@ -740,6 +911,8 @@ namespace Org.OpenAPITools.Api AfterFakeOuterBooleanSerializeDefaultImplementation(apiResponseLocalVar, body); + Events.ExecuteOnFakeOuterBooleanSerialize(apiResponseLocalVar); + return apiResponseLocalVar; } } @@ -886,6 +1059,8 @@ namespace Org.OpenAPITools.Api AfterFakeOuterCompositeSerializeDefaultImplementation(apiResponseLocalVar, outerComposite); + Events.ExecuteOnFakeOuterCompositeSerialize(apiResponseLocalVar); + return apiResponseLocalVar; } } @@ -1019,6 +1194,8 @@ namespace Org.OpenAPITools.Api AfterFakeOuterNumberSerializeDefaultImplementation(apiResponseLocalVar, body); + Events.ExecuteOnFakeOuterNumberSerialize(apiResponseLocalVar); + return apiResponseLocalVar; } } @@ -1177,6 +1354,8 @@ namespace Org.OpenAPITools.Api AfterFakeOuterStringSerializeDefaultImplementation(apiResponseLocalVar, requiredStringUuid, body); + Events.ExecuteOnFakeOuterStringSerialize(apiResponseLocalVar); + return apiResponseLocalVar; } } @@ -1286,6 +1465,8 @@ namespace Org.OpenAPITools.Api AfterGetArrayOfEnumsDefaultImplementation(apiResponseLocalVar); + Events.ExecuteOnGetArrayOfEnums(apiResponseLocalVar); + return apiResponseLocalVar; } } @@ -1422,6 +1603,8 @@ namespace Org.OpenAPITools.Api AfterTestBodyWithFileSchemaDefaultImplementation(apiResponseLocalVar, fileSchemaTestClass); + Events.ExecuteOnTestBodyWithFileSchema(apiResponseLocalVar); + return apiResponseLocalVar; } } @@ -1574,6 +1757,8 @@ namespace Org.OpenAPITools.Api AfterTestBodyWithQueryParamsDefaultImplementation(apiResponseLocalVar, user, query); + Events.ExecuteOnTestBodyWithQueryParams(apiResponseLocalVar); + return apiResponseLocalVar; } } @@ -1719,6 +1904,8 @@ namespace Org.OpenAPITools.Api AfterTestClientModelDefaultImplementation(apiResponseLocalVar, modelClient); + Events.ExecuteOnTestClientModel(apiResponseLocalVar); + return apiResponseLocalVar; } } @@ -2003,6 +2190,8 @@ namespace Org.OpenAPITools.Api AfterTestEndpointParametersDefaultImplementation(apiResponseLocalVar, varByte, number, varDouble, patternWithoutDelimiter, date, binary, varFloat, integer, int32, int64, varString, password, callback, dateTime); + Events.ExecuteOnTestEndpointParameters(apiResponseLocalVar); + if (apiResponseLocalVar.StatusCode == (HttpStatusCode) 429) foreach(TokenBase tokenBaseLocalVar in tokenBaseLocalVars) tokenBaseLocalVar.BeginRateLimit(); @@ -2235,6 +2424,8 @@ namespace Org.OpenAPITools.Api AfterTestEnumParametersDefaultImplementation(apiResponseLocalVar, enumHeaderStringArray, enumQueryStringArray, enumQueryDouble, enumQueryInteger, enumFormStringArray, enumHeaderString, enumQueryString, enumFormString); + Events.ExecuteOnTestEnumParameters(apiResponseLocalVar); + return apiResponseLocalVar; } } @@ -2401,6 +2592,8 @@ namespace Org.OpenAPITools.Api AfterTestGroupParametersDefaultImplementation(apiResponseLocalVar, requiredBooleanGroup, requiredStringGroup, requiredInt64Group, booleanGroup, stringGroup, int64Group); + Events.ExecuteOnTestGroupParameters(apiResponseLocalVar); + if (apiResponseLocalVar.StatusCode == (HttpStatusCode) 429) foreach(TokenBase tokenBaseLocalVar in tokenBaseLocalVars) tokenBaseLocalVar.BeginRateLimit(); @@ -2541,6 +2734,8 @@ namespace Org.OpenAPITools.Api AfterTestInlineAdditionalPropertiesDefaultImplementation(apiResponseLocalVar, requestBody); + Events.ExecuteOnTestInlineAdditionalProperties(apiResponseLocalVar); + return apiResponseLocalVar; } } @@ -2695,6 +2890,8 @@ namespace Org.OpenAPITools.Api AfterTestJsonFormDataDefaultImplementation(apiResponseLocalVar, param, param2); + Events.ExecuteOnTestJsonFormData(apiResponseLocalVar); + return apiResponseLocalVar; } } @@ -2908,6 +3105,8 @@ namespace Org.OpenAPITools.Api AfterTestQueryParameterCollectionFormatDefaultImplementation(apiResponseLocalVar, pipe, ioutil, http, url, context, requiredNotNullable, requiredNullable, notRequiredNotNullable, notRequiredNullable); + Events.ExecuteOnTestQueryParameterCollectionFormat(apiResponseLocalVar); + return apiResponseLocalVar; } } diff --git a/samples/client/petstore/csharp/OpenAPIClient-generichost-net6.0-nrt/src/Org.OpenAPITools/Api/FakeClassnameTags123Api.cs b/samples/client/petstore/csharp/OpenAPIClient-generichost-net6.0-nrt/src/Org.OpenAPITools/Api/FakeClassnameTags123Api.cs index 25cfbfa8aec..ef613a6fb5a 100644 --- a/samples/client/petstore/csharp/OpenAPIClient-generichost-net6.0-nrt/src/Org.OpenAPITools/Api/FakeClassnameTags123Api.cs +++ b/samples/client/petstore/csharp/OpenAPIClient-generichost-net6.0-nrt/src/Org.OpenAPITools/Api/FakeClassnameTags123Api.cs @@ -19,6 +19,7 @@ using System.Net.Http; using System.Net.Http.Headers; using System.Text.Json; using Org.OpenAPITools.Client; +using Org.OpenAPITools.Api; using Org.OpenAPITools.Model; namespace Org.OpenAPITools.IApi @@ -29,6 +30,11 @@ namespace Org.OpenAPITools.IApi /// public interface IFakeClassnameTags123Api : IApi { + /// + /// The class containing the events + /// + FakeClassnameTags123ApiEvents Events { get; } + /// /// To test class name in snake case /// @@ -56,6 +62,23 @@ namespace Org.OpenAPITools.IApi namespace Org.OpenAPITools.Api { + /// + /// Represents a collection of functions to interact with the API endpoints + /// This class is registered as transient. + /// + public class FakeClassnameTags123ApiEvents + { + /// + /// The event raised after the server response + /// + public event EventHandler>? OnTestClassname; + + internal void ExecuteOnTestClassname(ApiResponse apiResponse) + { + OnTestClassname?.Invoke(this, new ApiResponseEventArgs(apiResponse)); + } + } + /// /// Represents a collection of functions to interact with the API endpoints /// @@ -73,6 +96,11 @@ namespace Org.OpenAPITools.Api /// public HttpClient HttpClient { get; } + /// + /// The class containing the events + /// + public FakeClassnameTags123ApiEvents Events { get; } + /// /// A token provider of type /// @@ -102,7 +130,7 @@ namespace Org.OpenAPITools.Api /// Initializes a new instance of the class. /// /// - public FakeClassnameTags123Api(ILogger logger, HttpClient httpClient, JsonSerializerOptionsProvider jsonSerializerOptionsProvider, + public FakeClassnameTags123Api(ILogger logger, HttpClient httpClient, JsonSerializerOptionsProvider jsonSerializerOptionsProvider, FakeClassnameTags123ApiEvents fakeClassnameTags123ApiEvents, TokenProvider apiKeyProvider, TokenProvider bearerTokenProvider, TokenProvider basicTokenProvider, @@ -112,6 +140,7 @@ namespace Org.OpenAPITools.Api _jsonSerializerOptions = jsonSerializerOptionsProvider.Options; Logger = logger; HttpClient = httpClient; + Events = fakeClassnameTags123ApiEvents; ApiKeyProvider = apiKeyProvider; BearerTokenProvider = bearerTokenProvider; BasicTokenProvider = basicTokenProvider; @@ -264,6 +293,8 @@ namespace Org.OpenAPITools.Api AfterTestClassnameDefaultImplementation(apiResponseLocalVar, modelClient); + Events.ExecuteOnTestClassname(apiResponseLocalVar); + if (apiResponseLocalVar.StatusCode == (HttpStatusCode) 429) foreach(TokenBase tokenBaseLocalVar in tokenBaseLocalVars) tokenBaseLocalVar.BeginRateLimit(); diff --git a/samples/client/petstore/csharp/OpenAPIClient-generichost-net6.0-nrt/src/Org.OpenAPITools/Api/PetApi.cs b/samples/client/petstore/csharp/OpenAPIClient-generichost-net6.0-nrt/src/Org.OpenAPITools/Api/PetApi.cs index eb1c51189b3..f9df2618276 100644 --- a/samples/client/petstore/csharp/OpenAPIClient-generichost-net6.0-nrt/src/Org.OpenAPITools/Api/PetApi.cs +++ b/samples/client/petstore/csharp/OpenAPIClient-generichost-net6.0-nrt/src/Org.OpenAPITools/Api/PetApi.cs @@ -19,6 +19,7 @@ using System.Net.Http; using System.Net.Http.Headers; using System.Text.Json; using Org.OpenAPITools.Client; +using Org.OpenAPITools.Api; using Org.OpenAPITools.Model; namespace Org.OpenAPITools.IApi @@ -29,6 +30,11 @@ namespace Org.OpenAPITools.IApi /// public interface IPetApi : IApi { + /// + /// The class containing the events + /// + PetApiEvents Events { get; } + /// /// Add a new pet to the store /// @@ -254,6 +260,103 @@ namespace Org.OpenAPITools.IApi namespace Org.OpenAPITools.Api { + /// + /// Represents a collection of functions to interact with the API endpoints + /// This class is registered as transient. + /// + public class PetApiEvents + { + /// + /// The event raised after the server response + /// + public event EventHandler>? OnAddPet; + + internal void ExecuteOnAddPet(ApiResponse apiResponse) + { + OnAddPet?.Invoke(this, new ApiResponseEventArgs(apiResponse)); + } + + /// + /// The event raised after the server response + /// + public event EventHandler>? OnDeletePet; + + internal void ExecuteOnDeletePet(ApiResponse apiResponse) + { + OnDeletePet?.Invoke(this, new ApiResponseEventArgs(apiResponse)); + } + + /// + /// The event raised after the server response + /// + public event EventHandler>>? OnFindPetsByStatus; + + internal void ExecuteOnFindPetsByStatus(ApiResponse> apiResponse) + { + OnFindPetsByStatus?.Invoke(this, new ApiResponseEventArgs>(apiResponse)); + } + + /// + /// The event raised after the server response + /// + public event EventHandler>>? OnFindPetsByTags; + + internal void ExecuteOnFindPetsByTags(ApiResponse> apiResponse) + { + OnFindPetsByTags?.Invoke(this, new ApiResponseEventArgs>(apiResponse)); + } + + /// + /// The event raised after the server response + /// + public event EventHandler>? OnGetPetById; + + internal void ExecuteOnGetPetById(ApiResponse apiResponse) + { + OnGetPetById?.Invoke(this, new ApiResponseEventArgs(apiResponse)); + } + + /// + /// The event raised after the server response + /// + public event EventHandler>? OnUpdatePet; + + internal void ExecuteOnUpdatePet(ApiResponse apiResponse) + { + OnUpdatePet?.Invoke(this, new ApiResponseEventArgs(apiResponse)); + } + + /// + /// The event raised after the server response + /// + public event EventHandler>? OnUpdatePetWithForm; + + internal void ExecuteOnUpdatePetWithForm(ApiResponse apiResponse) + { + OnUpdatePetWithForm?.Invoke(this, new ApiResponseEventArgs(apiResponse)); + } + + /// + /// The event raised after the server response + /// + public event EventHandler>? OnUploadFile; + + internal void ExecuteOnUploadFile(ApiResponse apiResponse) + { + OnUploadFile?.Invoke(this, new ApiResponseEventArgs(apiResponse)); + } + + /// + /// The event raised after the server response + /// + public event EventHandler>? OnUploadFileWithRequiredFile; + + internal void ExecuteOnUploadFileWithRequiredFile(ApiResponse apiResponse) + { + OnUploadFileWithRequiredFile?.Invoke(this, new ApiResponseEventArgs(apiResponse)); + } + } + /// /// Represents a collection of functions to interact with the API endpoints /// @@ -271,6 +374,11 @@ namespace Org.OpenAPITools.Api /// public HttpClient HttpClient { get; } + /// + /// The class containing the events + /// + public PetApiEvents Events { get; } + /// /// A token provider of type /// @@ -300,7 +408,7 @@ namespace Org.OpenAPITools.Api /// Initializes a new instance of the class. /// /// - public PetApi(ILogger logger, HttpClient httpClient, JsonSerializerOptionsProvider jsonSerializerOptionsProvider, + public PetApi(ILogger logger, HttpClient httpClient, JsonSerializerOptionsProvider jsonSerializerOptionsProvider, PetApiEvents petApiEvents, TokenProvider apiKeyProvider, TokenProvider bearerTokenProvider, TokenProvider basicTokenProvider, @@ -310,6 +418,7 @@ namespace Org.OpenAPITools.Api _jsonSerializerOptions = jsonSerializerOptionsProvider.Options; Logger = logger; HttpClient = httpClient; + Events = petApiEvents; ApiKeyProvider = apiKeyProvider; BearerTokenProvider = bearerTokenProvider; BasicTokenProvider = basicTokenProvider; @@ -461,6 +570,8 @@ namespace Org.OpenAPITools.Api AfterAddPetDefaultImplementation(apiResponseLocalVar, pet); + Events.ExecuteOnAddPet(apiResponseLocalVar); + if (apiResponseLocalVar.StatusCode == (HttpStatusCode) 429) foreach(TokenBase tokenBaseLocalVar in tokenBaseLocalVars) tokenBaseLocalVar.BeginRateLimit(); @@ -610,6 +721,8 @@ namespace Org.OpenAPITools.Api AfterDeletePetDefaultImplementation(apiResponseLocalVar, petId, apiKey); + Events.ExecuteOnDeletePet(apiResponseLocalVar); + if (apiResponseLocalVar.StatusCode == (HttpStatusCode) 429) foreach(TokenBase tokenBaseLocalVar in tokenBaseLocalVars) tokenBaseLocalVar.BeginRateLimit(); @@ -771,6 +884,8 @@ namespace Org.OpenAPITools.Api AfterFindPetsByStatusDefaultImplementation(apiResponseLocalVar, status); + Events.ExecuteOnFindPetsByStatus(apiResponseLocalVar); + if (apiResponseLocalVar.StatusCode == (HttpStatusCode) 429) foreach(TokenBase tokenBaseLocalVar in tokenBaseLocalVars) tokenBaseLocalVar.BeginRateLimit(); @@ -936,6 +1051,8 @@ namespace Org.OpenAPITools.Api AfterFindPetsByTagsDefaultImplementation(apiResponseLocalVar, tags); + Events.ExecuteOnFindPetsByTags(apiResponseLocalVar); + if (apiResponseLocalVar.StatusCode == (HttpStatusCode) 429) foreach(TokenBase tokenBaseLocalVar in tokenBaseLocalVars) tokenBaseLocalVar.BeginRateLimit(); @@ -1073,6 +1190,8 @@ namespace Org.OpenAPITools.Api AfterGetPetByIdDefaultImplementation(apiResponseLocalVar, petId); + Events.ExecuteOnGetPetById(apiResponseLocalVar); + if (apiResponseLocalVar.StatusCode == (HttpStatusCode) 429) foreach(TokenBase tokenBaseLocalVar in tokenBaseLocalVars) tokenBaseLocalVar.BeginRateLimit(); @@ -1232,6 +1351,8 @@ namespace Org.OpenAPITools.Api AfterUpdatePetDefaultImplementation(apiResponseLocalVar, pet); + Events.ExecuteOnUpdatePet(apiResponseLocalVar); + if (apiResponseLocalVar.StatusCode == (HttpStatusCode) 429) foreach(TokenBase tokenBaseLocalVar in tokenBaseLocalVars) tokenBaseLocalVar.BeginRateLimit(); @@ -1409,6 +1530,8 @@ namespace Org.OpenAPITools.Api AfterUpdatePetWithFormDefaultImplementation(apiResponseLocalVar, petId, name, status); + Events.ExecuteOnUpdatePetWithForm(apiResponseLocalVar); + if (apiResponseLocalVar.StatusCode == (HttpStatusCode) 429) foreach(TokenBase tokenBaseLocalVar in tokenBaseLocalVars) tokenBaseLocalVar.BeginRateLimit(); @@ -1591,6 +1714,8 @@ namespace Org.OpenAPITools.Api AfterUploadFileDefaultImplementation(apiResponseLocalVar, petId, file, additionalMetadata); + Events.ExecuteOnUploadFile(apiResponseLocalVar); + if (apiResponseLocalVar.StatusCode == (HttpStatusCode) 429) foreach(TokenBase tokenBaseLocalVar in tokenBaseLocalVars) tokenBaseLocalVar.BeginRateLimit(); @@ -1773,6 +1898,8 @@ namespace Org.OpenAPITools.Api AfterUploadFileWithRequiredFileDefaultImplementation(apiResponseLocalVar, requiredFile, petId, additionalMetadata); + Events.ExecuteOnUploadFileWithRequiredFile(apiResponseLocalVar); + if (apiResponseLocalVar.StatusCode == (HttpStatusCode) 429) foreach(TokenBase tokenBaseLocalVar in tokenBaseLocalVars) tokenBaseLocalVar.BeginRateLimit(); diff --git a/samples/client/petstore/csharp/OpenAPIClient-generichost-net6.0-nrt/src/Org.OpenAPITools/Api/StoreApi.cs b/samples/client/petstore/csharp/OpenAPIClient-generichost-net6.0-nrt/src/Org.OpenAPITools/Api/StoreApi.cs index b8951868180..45063e299cf 100644 --- a/samples/client/petstore/csharp/OpenAPIClient-generichost-net6.0-nrt/src/Org.OpenAPITools/Api/StoreApi.cs +++ b/samples/client/petstore/csharp/OpenAPIClient-generichost-net6.0-nrt/src/Org.OpenAPITools/Api/StoreApi.cs @@ -19,6 +19,7 @@ using System.Net.Http; using System.Net.Http.Headers; using System.Text.Json; using Org.OpenAPITools.Client; +using Org.OpenAPITools.Api; using Org.OpenAPITools.Model; namespace Org.OpenAPITools.IApi @@ -29,6 +30,11 @@ namespace Org.OpenAPITools.IApi /// public interface IStoreApi : IApi { + /// + /// The class containing the events + /// + StoreApiEvents Events { get; } + /// /// Delete purchase order by ID /// @@ -123,6 +129,53 @@ namespace Org.OpenAPITools.IApi namespace Org.OpenAPITools.Api { + /// + /// Represents a collection of functions to interact with the API endpoints + /// This class is registered as transient. + /// + public class StoreApiEvents + { + /// + /// The event raised after the server response + /// + public event EventHandler>? OnDeleteOrder; + + internal void ExecuteOnDeleteOrder(ApiResponse apiResponse) + { + OnDeleteOrder?.Invoke(this, new ApiResponseEventArgs(apiResponse)); + } + + /// + /// The event raised after the server response + /// + public event EventHandler>>? OnGetInventory; + + internal void ExecuteOnGetInventory(ApiResponse> apiResponse) + { + OnGetInventory?.Invoke(this, new ApiResponseEventArgs>(apiResponse)); + } + + /// + /// The event raised after the server response + /// + public event EventHandler>? OnGetOrderById; + + internal void ExecuteOnGetOrderById(ApiResponse apiResponse) + { + OnGetOrderById?.Invoke(this, new ApiResponseEventArgs(apiResponse)); + } + + /// + /// The event raised after the server response + /// + public event EventHandler>? OnPlaceOrder; + + internal void ExecuteOnPlaceOrder(ApiResponse apiResponse) + { + OnPlaceOrder?.Invoke(this, new ApiResponseEventArgs(apiResponse)); + } + } + /// /// Represents a collection of functions to interact with the API endpoints /// @@ -140,6 +193,11 @@ namespace Org.OpenAPITools.Api /// public HttpClient HttpClient { get; } + /// + /// The class containing the events + /// + public StoreApiEvents Events { get; } + /// /// A token provider of type /// @@ -169,7 +227,7 @@ namespace Org.OpenAPITools.Api /// Initializes a new instance of the class. /// /// - public StoreApi(ILogger logger, HttpClient httpClient, JsonSerializerOptionsProvider jsonSerializerOptionsProvider, + public StoreApi(ILogger logger, HttpClient httpClient, JsonSerializerOptionsProvider jsonSerializerOptionsProvider, StoreApiEvents storeApiEvents, TokenProvider apiKeyProvider, TokenProvider bearerTokenProvider, TokenProvider basicTokenProvider, @@ -179,6 +237,7 @@ namespace Org.OpenAPITools.Api _jsonSerializerOptions = jsonSerializerOptionsProvider.Options; Logger = logger; HttpClient = httpClient; + Events = storeApiEvents; ApiKeyProvider = apiKeyProvider; BearerTokenProvider = bearerTokenProvider; BasicTokenProvider = basicTokenProvider; @@ -299,6 +358,8 @@ namespace Org.OpenAPITools.Api AfterDeleteOrderDefaultImplementation(apiResponseLocalVar, orderId); + Events.ExecuteOnDeleteOrder(apiResponseLocalVar); + return apiResponseLocalVar; } } @@ -416,6 +477,8 @@ namespace Org.OpenAPITools.Api AfterGetInventoryDefaultImplementation(apiResponseLocalVar); + Events.ExecuteOnGetInventory(apiResponseLocalVar); + if (apiResponseLocalVar.StatusCode == (HttpStatusCode) 429) foreach(TokenBase tokenBaseLocalVar in tokenBaseLocalVars) tokenBaseLocalVar.BeginRateLimit(); @@ -541,6 +604,8 @@ namespace Org.OpenAPITools.Api AfterGetOrderByIdDefaultImplementation(apiResponseLocalVar, orderId); + Events.ExecuteOnGetOrderById(apiResponseLocalVar); + return apiResponseLocalVar; } } @@ -687,6 +752,8 @@ namespace Org.OpenAPITools.Api AfterPlaceOrderDefaultImplementation(apiResponseLocalVar, order); + Events.ExecuteOnPlaceOrder(apiResponseLocalVar); + return apiResponseLocalVar; } } diff --git a/samples/client/petstore/csharp/OpenAPIClient-generichost-net6.0-nrt/src/Org.OpenAPITools/Api/UserApi.cs b/samples/client/petstore/csharp/OpenAPIClient-generichost-net6.0-nrt/src/Org.OpenAPITools/Api/UserApi.cs index 7116456ad0a..ccb4e92923e 100644 --- a/samples/client/petstore/csharp/OpenAPIClient-generichost-net6.0-nrt/src/Org.OpenAPITools/Api/UserApi.cs +++ b/samples/client/petstore/csharp/OpenAPIClient-generichost-net6.0-nrt/src/Org.OpenAPITools/Api/UserApi.cs @@ -19,6 +19,7 @@ using System.Net.Http; using System.Net.Http.Headers; using System.Text.Json; using Org.OpenAPITools.Client; +using Org.OpenAPITools.Api; using Org.OpenAPITools.Model; namespace Org.OpenAPITools.IApi @@ -29,6 +30,11 @@ namespace Org.OpenAPITools.IApi /// public interface IUserApi : IApi { + /// + /// The class containing the events + /// + UserApiEvents Events { get; } + /// /// Create user /// @@ -219,6 +225,93 @@ namespace Org.OpenAPITools.IApi namespace Org.OpenAPITools.Api { + /// + /// Represents a collection of functions to interact with the API endpoints + /// This class is registered as transient. + /// + public class UserApiEvents + { + /// + /// The event raised after the server response + /// + public event EventHandler>? OnCreateUser; + + internal void ExecuteOnCreateUser(ApiResponse apiResponse) + { + OnCreateUser?.Invoke(this, new ApiResponseEventArgs(apiResponse)); + } + + /// + /// The event raised after the server response + /// + public event EventHandler>? OnCreateUsersWithArrayInput; + + internal void ExecuteOnCreateUsersWithArrayInput(ApiResponse apiResponse) + { + OnCreateUsersWithArrayInput?.Invoke(this, new ApiResponseEventArgs(apiResponse)); + } + + /// + /// The event raised after the server response + /// + public event EventHandler>? OnCreateUsersWithListInput; + + internal void ExecuteOnCreateUsersWithListInput(ApiResponse apiResponse) + { + OnCreateUsersWithListInput?.Invoke(this, new ApiResponseEventArgs(apiResponse)); + } + + /// + /// The event raised after the server response + /// + public event EventHandler>? OnDeleteUser; + + internal void ExecuteOnDeleteUser(ApiResponse apiResponse) + { + OnDeleteUser?.Invoke(this, new ApiResponseEventArgs(apiResponse)); + } + + /// + /// The event raised after the server response + /// + public event EventHandler>? OnGetUserByName; + + internal void ExecuteOnGetUserByName(ApiResponse apiResponse) + { + OnGetUserByName?.Invoke(this, new ApiResponseEventArgs(apiResponse)); + } + + /// + /// The event raised after the server response + /// + public event EventHandler>? OnLoginUser; + + internal void ExecuteOnLoginUser(ApiResponse apiResponse) + { + OnLoginUser?.Invoke(this, new ApiResponseEventArgs(apiResponse)); + } + + /// + /// The event raised after the server response + /// + public event EventHandler>? OnLogoutUser; + + internal void ExecuteOnLogoutUser(ApiResponse apiResponse) + { + OnLogoutUser?.Invoke(this, new ApiResponseEventArgs(apiResponse)); + } + + /// + /// The event raised after the server response + /// + public event EventHandler>? OnUpdateUser; + + internal void ExecuteOnUpdateUser(ApiResponse apiResponse) + { + OnUpdateUser?.Invoke(this, new ApiResponseEventArgs(apiResponse)); + } + } + /// /// Represents a collection of functions to interact with the API endpoints /// @@ -236,6 +329,11 @@ namespace Org.OpenAPITools.Api /// public HttpClient HttpClient { get; } + /// + /// The class containing the events + /// + public UserApiEvents Events { get; } + /// /// A token provider of type /// @@ -265,7 +363,7 @@ namespace Org.OpenAPITools.Api /// Initializes a new instance of the class. /// /// - public UserApi(ILogger logger, HttpClient httpClient, JsonSerializerOptionsProvider jsonSerializerOptionsProvider, + public UserApi(ILogger logger, HttpClient httpClient, JsonSerializerOptionsProvider jsonSerializerOptionsProvider, UserApiEvents userApiEvents, TokenProvider apiKeyProvider, TokenProvider bearerTokenProvider, TokenProvider basicTokenProvider, @@ -275,6 +373,7 @@ namespace Org.OpenAPITools.Api _jsonSerializerOptions = jsonSerializerOptionsProvider.Options; Logger = logger; HttpClient = httpClient; + Events = userApiEvents; ApiKeyProvider = apiKeyProvider; BearerTokenProvider = bearerTokenProvider; BasicTokenProvider = basicTokenProvider; @@ -407,6 +506,8 @@ namespace Org.OpenAPITools.Api AfterCreateUserDefaultImplementation(apiResponseLocalVar, user); + Events.ExecuteOnCreateUser(apiResponseLocalVar); + return apiResponseLocalVar; } } @@ -543,6 +644,8 @@ namespace Org.OpenAPITools.Api AfterCreateUsersWithArrayInputDefaultImplementation(apiResponseLocalVar, user); + Events.ExecuteOnCreateUsersWithArrayInput(apiResponseLocalVar); + return apiResponseLocalVar; } } @@ -679,6 +782,8 @@ namespace Org.OpenAPITools.Api AfterCreateUsersWithListInputDefaultImplementation(apiResponseLocalVar, user); + Events.ExecuteOnCreateUsersWithListInput(apiResponseLocalVar); + return apiResponseLocalVar; } } @@ -803,6 +908,8 @@ namespace Org.OpenAPITools.Api AfterDeleteUserDefaultImplementation(apiResponseLocalVar, username); + Events.ExecuteOnDeleteUser(apiResponseLocalVar); + return apiResponseLocalVar; } } @@ -937,6 +1044,8 @@ namespace Org.OpenAPITools.Api AfterGetUserByNameDefaultImplementation(apiResponseLocalVar, username); + Events.ExecuteOnGetUserByName(apiResponseLocalVar); + return apiResponseLocalVar; } } @@ -1087,6 +1196,8 @@ namespace Org.OpenAPITools.Api AfterLoginUserDefaultImplementation(apiResponseLocalVar, username, password); + Events.ExecuteOnLoginUser(apiResponseLocalVar); + return apiResponseLocalVar; } } @@ -1187,6 +1298,8 @@ namespace Org.OpenAPITools.Api AfterLogoutUserDefaultImplementation(apiResponseLocalVar); + Events.ExecuteOnLogoutUser(apiResponseLocalVar); + return apiResponseLocalVar; } } @@ -1334,6 +1447,8 @@ namespace Org.OpenAPITools.Api AfterUpdateUserDefaultImplementation(apiResponseLocalVar, user, username); + Events.ExecuteOnUpdateUser(apiResponseLocalVar); + return apiResponseLocalVar; } } diff --git a/samples/client/petstore/csharp/OpenAPIClient-generichost-net6.0-nrt/src/Org.OpenAPITools/Client/ApiResponseEventArgs.cs b/samples/client/petstore/csharp/OpenAPIClient-generichost-net6.0-nrt/src/Org.OpenAPITools/Client/ApiResponseEventArgs.cs index f87e53e8b04..28d50d6378f 100644 --- a/samples/client/petstore/csharp/OpenAPIClient-generichost-net6.0-nrt/src/Org.OpenAPITools/Client/ApiResponseEventArgs.cs +++ b/samples/client/petstore/csharp/OpenAPIClient-generichost-net6.0-nrt/src/Org.OpenAPITools/Client/ApiResponseEventArgs.cs @@ -1,58 +1,24 @@ using System; -using System.Net; namespace Org.OpenAPITools.Client { /// - /// Useful for tracking server health. + /// Useful for tracking server health /// - public class ApiResponseEventArgs : EventArgs + public class ApiResponseEventArgs : EventArgs { /// - /// The time the request was sent. + /// The ApiResponse /// - public DateTime RequestedAt { get; } + public ApiResponse ApiResponse { get; } /// - /// The time the response was received. + /// The ApiResponseEventArgs /// - public DateTime ReceivedAt { get; } - - /// - /// The HttpStatusCode received. - /// - public HttpStatusCode HttpStatus { get; } - - /// - /// The path requested. - /// - public string PathFormat { get; } - - /// - /// The elapsed time from request to response. - /// - public TimeSpan ToTimeSpan => this.ReceivedAt - this.RequestedAt; - - /// - /// The path - /// - public string Path { get; } - - /// - /// The event args used to track server health. - /// - /// - /// - /// - /// - /// - public ApiResponseEventArgs(DateTime requestedAt, DateTime receivedAt, HttpStatusCode httpStatus, string pathFormat, string path) + /// + public ApiResponseEventArgs(ApiResponse apiResponse) { - RequestedAt = requestedAt; - ReceivedAt = receivedAt; - HttpStatus = httpStatus; - PathFormat = pathFormat; - Path = path; + ApiResponse = apiResponse; } } } diff --git a/samples/client/petstore/csharp/OpenAPIClient-generichost-net6.0-nrt/src/Org.OpenAPITools/Client/HostConfiguration.cs b/samples/client/petstore/csharp/OpenAPIClient-generichost-net6.0-nrt/src/Org.OpenAPITools/Client/HostConfiguration.cs index dfacddeb524..d347b5f89cd 100644 --- a/samples/client/petstore/csharp/OpenAPIClient-generichost-net6.0-nrt/src/Org.OpenAPITools/Client/HostConfiguration.cs +++ b/samples/client/petstore/csharp/OpenAPIClient-generichost-net6.0-nrt/src/Org.OpenAPITools/Client/HostConfiguration.cs @@ -134,12 +134,19 @@ namespace Org.OpenAPITools.Client _jsonOptions.Converters.Add(new ZeroBasedEnumClassJsonConverter()); _services.AddSingleton(new JsonSerializerOptionsProvider(_jsonOptions)); _services.AddSingleton(); + _services.AddSingleton(); _services.AddTransient(); + _services.AddSingleton(); _services.AddTransient(); + _services.AddSingleton(); _services.AddTransient(); + _services.AddSingleton(); _services.AddTransient(); + _services.AddSingleton(); _services.AddTransient(); + _services.AddSingleton(); _services.AddTransient(); + _services.AddSingleton(); _services.AddTransient(); } diff --git a/samples/client/petstore/csharp/OpenAPIClient-generichost-net6.0/src/Org.OpenAPITools/Api/AnotherFakeApi.cs b/samples/client/petstore/csharp/OpenAPIClient-generichost-net6.0/src/Org.OpenAPITools/Api/AnotherFakeApi.cs index ecb7abdccb0..16832f5d624 100644 --- a/samples/client/petstore/csharp/OpenAPIClient-generichost-net6.0/src/Org.OpenAPITools/Api/AnotherFakeApi.cs +++ b/samples/client/petstore/csharp/OpenAPIClient-generichost-net6.0/src/Org.OpenAPITools/Api/AnotherFakeApi.cs @@ -17,6 +17,7 @@ using System.Net.Http; using System.Net.Http.Headers; using System.Text.Json; using Org.OpenAPITools.Client; +using Org.OpenAPITools.Api; using Org.OpenAPITools.Model; namespace Org.OpenAPITools.IApi @@ -27,6 +28,11 @@ namespace Org.OpenAPITools.IApi /// public interface IAnotherFakeApi : IApi { + /// + /// The class containing the events + /// + AnotherFakeApiEvents Events { get; } + /// /// To test special tags /// @@ -54,6 +60,23 @@ namespace Org.OpenAPITools.IApi namespace Org.OpenAPITools.Api { + /// + /// Represents a collection of functions to interact with the API endpoints + /// This class is registered as transient. + /// + public class AnotherFakeApiEvents + { + /// + /// The event raised after the server response + /// + public event EventHandler> OnCall123TestSpecialTags; + + internal void ExecuteOnCall123TestSpecialTags(ApiResponse apiResponse) + { + OnCall123TestSpecialTags?.Invoke(this, new ApiResponseEventArgs(apiResponse)); + } + } + /// /// Represents a collection of functions to interact with the API endpoints /// @@ -71,6 +94,11 @@ namespace Org.OpenAPITools.Api /// public HttpClient HttpClient { get; } + /// + /// The class containing the events + /// + public AnotherFakeApiEvents Events { get; } + /// /// A token provider of type /// @@ -100,7 +128,7 @@ namespace Org.OpenAPITools.Api /// Initializes a new instance of the class. /// /// - public AnotherFakeApi(ILogger logger, HttpClient httpClient, JsonSerializerOptionsProvider jsonSerializerOptionsProvider, + public AnotherFakeApi(ILogger logger, HttpClient httpClient, JsonSerializerOptionsProvider jsonSerializerOptionsProvider, AnotherFakeApiEvents anotherFakeApiEvents, TokenProvider apiKeyProvider, TokenProvider bearerTokenProvider, TokenProvider basicTokenProvider, @@ -110,6 +138,7 @@ namespace Org.OpenAPITools.Api _jsonSerializerOptions = jsonSerializerOptionsProvider.Options; Logger = logger; HttpClient = httpClient; + Events = anotherFakeApiEvents; ApiKeyProvider = apiKeyProvider; BearerTokenProvider = bearerTokenProvider; BasicTokenProvider = basicTokenProvider; @@ -251,6 +280,8 @@ namespace Org.OpenAPITools.Api AfterCall123TestSpecialTagsDefaultImplementation(apiResponseLocalVar, modelClient); + Events.ExecuteOnCall123TestSpecialTags(apiResponseLocalVar); + return apiResponseLocalVar; } } diff --git a/samples/client/petstore/csharp/OpenAPIClient-generichost-net6.0/src/Org.OpenAPITools/Api/DefaultApi.cs b/samples/client/petstore/csharp/OpenAPIClient-generichost-net6.0/src/Org.OpenAPITools/Api/DefaultApi.cs index 49e2c84365f..bb3768fcefb 100644 --- a/samples/client/petstore/csharp/OpenAPIClient-generichost-net6.0/src/Org.OpenAPITools/Api/DefaultApi.cs +++ b/samples/client/petstore/csharp/OpenAPIClient-generichost-net6.0/src/Org.OpenAPITools/Api/DefaultApi.cs @@ -17,6 +17,7 @@ using System.Net.Http; using System.Net.Http.Headers; using System.Text.Json; using Org.OpenAPITools.Client; +using Org.OpenAPITools.Api; using Org.OpenAPITools.Model; namespace Org.OpenAPITools.IApi @@ -27,6 +28,11 @@ namespace Org.OpenAPITools.IApi /// public interface IDefaultApi : IApi { + /// + /// The class containing the events + /// + DefaultApiEvents Events { get; } + /// /// /// @@ -96,6 +102,43 @@ namespace Org.OpenAPITools.IApi namespace Org.OpenAPITools.Api { + /// + /// Represents a collection of functions to interact with the API endpoints + /// This class is registered as transient. + /// + public class DefaultApiEvents + { + /// + /// The event raised after the server response + /// + public event EventHandler> OnFooGet; + + internal void ExecuteOnFooGet(ApiResponse apiResponse) + { + OnFooGet?.Invoke(this, new ApiResponseEventArgs(apiResponse)); + } + + /// + /// The event raised after the server response + /// + public event EventHandler> OnGetCountry; + + internal void ExecuteOnGetCountry(ApiResponse apiResponse) + { + OnGetCountry?.Invoke(this, new ApiResponseEventArgs(apiResponse)); + } + + /// + /// The event raised after the server response + /// + public event EventHandler>> OnHello; + + internal void ExecuteOnHello(ApiResponse> apiResponse) + { + OnHello?.Invoke(this, new ApiResponseEventArgs>(apiResponse)); + } + } + /// /// Represents a collection of functions to interact with the API endpoints /// @@ -113,6 +156,11 @@ namespace Org.OpenAPITools.Api /// public HttpClient HttpClient { get; } + /// + /// The class containing the events + /// + public DefaultApiEvents Events { get; } + /// /// A token provider of type /// @@ -142,7 +190,7 @@ namespace Org.OpenAPITools.Api /// Initializes a new instance of the class. /// /// - public DefaultApi(ILogger logger, HttpClient httpClient, JsonSerializerOptionsProvider jsonSerializerOptionsProvider, + public DefaultApi(ILogger logger, HttpClient httpClient, JsonSerializerOptionsProvider jsonSerializerOptionsProvider, DefaultApiEvents defaultApiEvents, TokenProvider apiKeyProvider, TokenProvider bearerTokenProvider, TokenProvider basicTokenProvider, @@ -152,6 +200,7 @@ namespace Org.OpenAPITools.Api _jsonSerializerOptions = jsonSerializerOptionsProvider.Options; Logger = logger; HttpClient = httpClient; + Events = defaultApiEvents; ApiKeyProvider = apiKeyProvider; BearerTokenProvider = bearerTokenProvider; BasicTokenProvider = basicTokenProvider; @@ -257,6 +306,8 @@ namespace Org.OpenAPITools.Api AfterFooGetDefaultImplementation(apiResponseLocalVar); + Events.ExecuteOnFooGet(apiResponseLocalVar); + return apiResponseLocalVar; } } @@ -399,6 +450,8 @@ namespace Org.OpenAPITools.Api AfterGetCountryDefaultImplementation(apiResponseLocalVar, country); + Events.ExecuteOnGetCountry(apiResponseLocalVar); + return apiResponseLocalVar; } } @@ -508,6 +561,8 @@ namespace Org.OpenAPITools.Api AfterHelloDefaultImplementation(apiResponseLocalVar); + Events.ExecuteOnHello(apiResponseLocalVar); + return apiResponseLocalVar; } } diff --git a/samples/client/petstore/csharp/OpenAPIClient-generichost-net6.0/src/Org.OpenAPITools/Api/FakeApi.cs b/samples/client/petstore/csharp/OpenAPIClient-generichost-net6.0/src/Org.OpenAPITools/Api/FakeApi.cs index 95491ea8c68..41d0619526c 100644 --- a/samples/client/petstore/csharp/OpenAPIClient-generichost-net6.0/src/Org.OpenAPITools/Api/FakeApi.cs +++ b/samples/client/petstore/csharp/OpenAPIClient-generichost-net6.0/src/Org.OpenAPITools/Api/FakeApi.cs @@ -17,6 +17,7 @@ using System.Net.Http; using System.Net.Http.Headers; using System.Text.Json; using Org.OpenAPITools.Client; +using Org.OpenAPITools.Api; using Org.OpenAPITools.Model; namespace Org.OpenAPITools.IApi @@ -27,6 +28,11 @@ namespace Org.OpenAPITools.IApi /// public interface IFakeApi : IApi { + /// + /// The class containing the events + /// + FakeApiEvents Events { get; } + /// /// Health check endpoint /// @@ -444,6 +450,163 @@ namespace Org.OpenAPITools.IApi namespace Org.OpenAPITools.Api { + /// + /// Represents a collection of functions to interact with the API endpoints + /// This class is registered as transient. + /// + public class FakeApiEvents + { + /// + /// The event raised after the server response + /// + public event EventHandler> OnFakeHealthGet; + + internal void ExecuteOnFakeHealthGet(ApiResponse apiResponse) + { + OnFakeHealthGet?.Invoke(this, new ApiResponseEventArgs(apiResponse)); + } + + /// + /// The event raised after the server response + /// + public event EventHandler> OnFakeOuterBooleanSerialize; + + internal void ExecuteOnFakeOuterBooleanSerialize(ApiResponse apiResponse) + { + OnFakeOuterBooleanSerialize?.Invoke(this, new ApiResponseEventArgs(apiResponse)); + } + + /// + /// The event raised after the server response + /// + public event EventHandler> OnFakeOuterCompositeSerialize; + + internal void ExecuteOnFakeOuterCompositeSerialize(ApiResponse apiResponse) + { + OnFakeOuterCompositeSerialize?.Invoke(this, new ApiResponseEventArgs(apiResponse)); + } + + /// + /// The event raised after the server response + /// + public event EventHandler> OnFakeOuterNumberSerialize; + + internal void ExecuteOnFakeOuterNumberSerialize(ApiResponse apiResponse) + { + OnFakeOuterNumberSerialize?.Invoke(this, new ApiResponseEventArgs(apiResponse)); + } + + /// + /// The event raised after the server response + /// + public event EventHandler> OnFakeOuterStringSerialize; + + internal void ExecuteOnFakeOuterStringSerialize(ApiResponse apiResponse) + { + OnFakeOuterStringSerialize?.Invoke(this, new ApiResponseEventArgs(apiResponse)); + } + + /// + /// The event raised after the server response + /// + public event EventHandler>> OnGetArrayOfEnums; + + internal void ExecuteOnGetArrayOfEnums(ApiResponse> apiResponse) + { + OnGetArrayOfEnums?.Invoke(this, new ApiResponseEventArgs>(apiResponse)); + } + + /// + /// The event raised after the server response + /// + public event EventHandler> OnTestBodyWithFileSchema; + + internal void ExecuteOnTestBodyWithFileSchema(ApiResponse apiResponse) + { + OnTestBodyWithFileSchema?.Invoke(this, new ApiResponseEventArgs(apiResponse)); + } + + /// + /// The event raised after the server response + /// + public event EventHandler> OnTestBodyWithQueryParams; + + internal void ExecuteOnTestBodyWithQueryParams(ApiResponse apiResponse) + { + OnTestBodyWithQueryParams?.Invoke(this, new ApiResponseEventArgs(apiResponse)); + } + + /// + /// The event raised after the server response + /// + public event EventHandler> OnTestClientModel; + + internal void ExecuteOnTestClientModel(ApiResponse apiResponse) + { + OnTestClientModel?.Invoke(this, new ApiResponseEventArgs(apiResponse)); + } + + /// + /// The event raised after the server response + /// + public event EventHandler> OnTestEndpointParameters; + + internal void ExecuteOnTestEndpointParameters(ApiResponse apiResponse) + { + OnTestEndpointParameters?.Invoke(this, new ApiResponseEventArgs(apiResponse)); + } + + /// + /// The event raised after the server response + /// + public event EventHandler> OnTestEnumParameters; + + internal void ExecuteOnTestEnumParameters(ApiResponse apiResponse) + { + OnTestEnumParameters?.Invoke(this, new ApiResponseEventArgs(apiResponse)); + } + + /// + /// The event raised after the server response + /// + public event EventHandler> OnTestGroupParameters; + + internal void ExecuteOnTestGroupParameters(ApiResponse apiResponse) + { + OnTestGroupParameters?.Invoke(this, new ApiResponseEventArgs(apiResponse)); + } + + /// + /// The event raised after the server response + /// + public event EventHandler> OnTestInlineAdditionalProperties; + + internal void ExecuteOnTestInlineAdditionalProperties(ApiResponse apiResponse) + { + OnTestInlineAdditionalProperties?.Invoke(this, new ApiResponseEventArgs(apiResponse)); + } + + /// + /// The event raised after the server response + /// + public event EventHandler> OnTestJsonFormData; + + internal void ExecuteOnTestJsonFormData(ApiResponse apiResponse) + { + OnTestJsonFormData?.Invoke(this, new ApiResponseEventArgs(apiResponse)); + } + + /// + /// The event raised after the server response + /// + public event EventHandler> OnTestQueryParameterCollectionFormat; + + internal void ExecuteOnTestQueryParameterCollectionFormat(ApiResponse apiResponse) + { + OnTestQueryParameterCollectionFormat?.Invoke(this, new ApiResponseEventArgs(apiResponse)); + } + } + /// /// Represents a collection of functions to interact with the API endpoints /// @@ -461,6 +624,11 @@ namespace Org.OpenAPITools.Api /// public HttpClient HttpClient { get; } + /// + /// The class containing the events + /// + public FakeApiEvents Events { get; } + /// /// A token provider of type /// @@ -490,7 +658,7 @@ namespace Org.OpenAPITools.Api /// Initializes a new instance of the class. /// /// - public FakeApi(ILogger logger, HttpClient httpClient, JsonSerializerOptionsProvider jsonSerializerOptionsProvider, + public FakeApi(ILogger logger, HttpClient httpClient, JsonSerializerOptionsProvider jsonSerializerOptionsProvider, FakeApiEvents fakeApiEvents, TokenProvider apiKeyProvider, TokenProvider bearerTokenProvider, TokenProvider basicTokenProvider, @@ -500,6 +668,7 @@ namespace Org.OpenAPITools.Api _jsonSerializerOptions = jsonSerializerOptionsProvider.Options; Logger = logger; HttpClient = httpClient; + Events = fakeApiEvents; ApiKeyProvider = apiKeyProvider; BearerTokenProvider = bearerTokenProvider; BasicTokenProvider = basicTokenProvider; @@ -605,6 +774,8 @@ namespace Org.OpenAPITools.Api AfterFakeHealthGetDefaultImplementation(apiResponseLocalVar); + Events.ExecuteOnFakeHealthGet(apiResponseLocalVar); + return apiResponseLocalVar; } } @@ -738,6 +909,8 @@ namespace Org.OpenAPITools.Api AfterFakeOuterBooleanSerializeDefaultImplementation(apiResponseLocalVar, body); + Events.ExecuteOnFakeOuterBooleanSerialize(apiResponseLocalVar); + return apiResponseLocalVar; } } @@ -884,6 +1057,8 @@ namespace Org.OpenAPITools.Api AfterFakeOuterCompositeSerializeDefaultImplementation(apiResponseLocalVar, outerComposite); + Events.ExecuteOnFakeOuterCompositeSerialize(apiResponseLocalVar); + return apiResponseLocalVar; } } @@ -1017,6 +1192,8 @@ namespace Org.OpenAPITools.Api AfterFakeOuterNumberSerializeDefaultImplementation(apiResponseLocalVar, body); + Events.ExecuteOnFakeOuterNumberSerialize(apiResponseLocalVar); + return apiResponseLocalVar; } } @@ -1175,6 +1352,8 @@ namespace Org.OpenAPITools.Api AfterFakeOuterStringSerializeDefaultImplementation(apiResponseLocalVar, requiredStringUuid, body); + Events.ExecuteOnFakeOuterStringSerialize(apiResponseLocalVar); + return apiResponseLocalVar; } } @@ -1284,6 +1463,8 @@ namespace Org.OpenAPITools.Api AfterGetArrayOfEnumsDefaultImplementation(apiResponseLocalVar); + Events.ExecuteOnGetArrayOfEnums(apiResponseLocalVar); + return apiResponseLocalVar; } } @@ -1420,6 +1601,8 @@ namespace Org.OpenAPITools.Api AfterTestBodyWithFileSchemaDefaultImplementation(apiResponseLocalVar, fileSchemaTestClass); + Events.ExecuteOnTestBodyWithFileSchema(apiResponseLocalVar); + return apiResponseLocalVar; } } @@ -1572,6 +1755,8 @@ namespace Org.OpenAPITools.Api AfterTestBodyWithQueryParamsDefaultImplementation(apiResponseLocalVar, user, query); + Events.ExecuteOnTestBodyWithQueryParams(apiResponseLocalVar); + return apiResponseLocalVar; } } @@ -1717,6 +1902,8 @@ namespace Org.OpenAPITools.Api AfterTestClientModelDefaultImplementation(apiResponseLocalVar, modelClient); + Events.ExecuteOnTestClientModel(apiResponseLocalVar); + return apiResponseLocalVar; } } @@ -2001,6 +2188,8 @@ namespace Org.OpenAPITools.Api AfterTestEndpointParametersDefaultImplementation(apiResponseLocalVar, varByte, number, varDouble, patternWithoutDelimiter, date, binary, varFloat, integer, int32, int64, varString, password, callback, dateTime); + Events.ExecuteOnTestEndpointParameters(apiResponseLocalVar); + if (apiResponseLocalVar.StatusCode == (HttpStatusCode) 429) foreach(TokenBase tokenBaseLocalVar in tokenBaseLocalVars) tokenBaseLocalVar.BeginRateLimit(); @@ -2233,6 +2422,8 @@ namespace Org.OpenAPITools.Api AfterTestEnumParametersDefaultImplementation(apiResponseLocalVar, enumHeaderStringArray, enumQueryStringArray, enumQueryDouble, enumQueryInteger, enumFormStringArray, enumHeaderString, enumQueryString, enumFormString); + Events.ExecuteOnTestEnumParameters(apiResponseLocalVar); + return apiResponseLocalVar; } } @@ -2399,6 +2590,8 @@ namespace Org.OpenAPITools.Api AfterTestGroupParametersDefaultImplementation(apiResponseLocalVar, requiredBooleanGroup, requiredStringGroup, requiredInt64Group, booleanGroup, stringGroup, int64Group); + Events.ExecuteOnTestGroupParameters(apiResponseLocalVar); + if (apiResponseLocalVar.StatusCode == (HttpStatusCode) 429) foreach(TokenBase tokenBaseLocalVar in tokenBaseLocalVars) tokenBaseLocalVar.BeginRateLimit(); @@ -2539,6 +2732,8 @@ namespace Org.OpenAPITools.Api AfterTestInlineAdditionalPropertiesDefaultImplementation(apiResponseLocalVar, requestBody); + Events.ExecuteOnTestInlineAdditionalProperties(apiResponseLocalVar); + return apiResponseLocalVar; } } @@ -2693,6 +2888,8 @@ namespace Org.OpenAPITools.Api AfterTestJsonFormDataDefaultImplementation(apiResponseLocalVar, param, param2); + Events.ExecuteOnTestJsonFormData(apiResponseLocalVar); + return apiResponseLocalVar; } } @@ -2906,6 +3103,8 @@ namespace Org.OpenAPITools.Api AfterTestQueryParameterCollectionFormatDefaultImplementation(apiResponseLocalVar, pipe, ioutil, http, url, context, requiredNotNullable, requiredNullable, notRequiredNotNullable, notRequiredNullable); + Events.ExecuteOnTestQueryParameterCollectionFormat(apiResponseLocalVar); + return apiResponseLocalVar; } } diff --git a/samples/client/petstore/csharp/OpenAPIClient-generichost-net6.0/src/Org.OpenAPITools/Api/FakeClassnameTags123Api.cs b/samples/client/petstore/csharp/OpenAPIClient-generichost-net6.0/src/Org.OpenAPITools/Api/FakeClassnameTags123Api.cs index 229a39450b5..c1cca9d96be 100644 --- a/samples/client/petstore/csharp/OpenAPIClient-generichost-net6.0/src/Org.OpenAPITools/Api/FakeClassnameTags123Api.cs +++ b/samples/client/petstore/csharp/OpenAPIClient-generichost-net6.0/src/Org.OpenAPITools/Api/FakeClassnameTags123Api.cs @@ -17,6 +17,7 @@ using System.Net.Http; using System.Net.Http.Headers; using System.Text.Json; using Org.OpenAPITools.Client; +using Org.OpenAPITools.Api; using Org.OpenAPITools.Model; namespace Org.OpenAPITools.IApi @@ -27,6 +28,11 @@ namespace Org.OpenAPITools.IApi /// public interface IFakeClassnameTags123Api : IApi { + /// + /// The class containing the events + /// + FakeClassnameTags123ApiEvents Events { get; } + /// /// To test class name in snake case /// @@ -54,6 +60,23 @@ namespace Org.OpenAPITools.IApi namespace Org.OpenAPITools.Api { + /// + /// Represents a collection of functions to interact with the API endpoints + /// This class is registered as transient. + /// + public class FakeClassnameTags123ApiEvents + { + /// + /// The event raised after the server response + /// + public event EventHandler> OnTestClassname; + + internal void ExecuteOnTestClassname(ApiResponse apiResponse) + { + OnTestClassname?.Invoke(this, new ApiResponseEventArgs(apiResponse)); + } + } + /// /// Represents a collection of functions to interact with the API endpoints /// @@ -71,6 +94,11 @@ namespace Org.OpenAPITools.Api /// public HttpClient HttpClient { get; } + /// + /// The class containing the events + /// + public FakeClassnameTags123ApiEvents Events { get; } + /// /// A token provider of type /// @@ -100,7 +128,7 @@ namespace Org.OpenAPITools.Api /// Initializes a new instance of the class. /// /// - public FakeClassnameTags123Api(ILogger logger, HttpClient httpClient, JsonSerializerOptionsProvider jsonSerializerOptionsProvider, + public FakeClassnameTags123Api(ILogger logger, HttpClient httpClient, JsonSerializerOptionsProvider jsonSerializerOptionsProvider, FakeClassnameTags123ApiEvents fakeClassnameTags123ApiEvents, TokenProvider apiKeyProvider, TokenProvider bearerTokenProvider, TokenProvider basicTokenProvider, @@ -110,6 +138,7 @@ namespace Org.OpenAPITools.Api _jsonSerializerOptions = jsonSerializerOptionsProvider.Options; Logger = logger; HttpClient = httpClient; + Events = fakeClassnameTags123ApiEvents; ApiKeyProvider = apiKeyProvider; BearerTokenProvider = bearerTokenProvider; BasicTokenProvider = basicTokenProvider; @@ -262,6 +291,8 @@ namespace Org.OpenAPITools.Api AfterTestClassnameDefaultImplementation(apiResponseLocalVar, modelClient); + Events.ExecuteOnTestClassname(apiResponseLocalVar); + if (apiResponseLocalVar.StatusCode == (HttpStatusCode) 429) foreach(TokenBase tokenBaseLocalVar in tokenBaseLocalVars) tokenBaseLocalVar.BeginRateLimit(); diff --git a/samples/client/petstore/csharp/OpenAPIClient-generichost-net6.0/src/Org.OpenAPITools/Api/PetApi.cs b/samples/client/petstore/csharp/OpenAPIClient-generichost-net6.0/src/Org.OpenAPITools/Api/PetApi.cs index 93759837a2e..83bf38174fd 100644 --- a/samples/client/petstore/csharp/OpenAPIClient-generichost-net6.0/src/Org.OpenAPITools/Api/PetApi.cs +++ b/samples/client/petstore/csharp/OpenAPIClient-generichost-net6.0/src/Org.OpenAPITools/Api/PetApi.cs @@ -17,6 +17,7 @@ using System.Net.Http; using System.Net.Http.Headers; using System.Text.Json; using Org.OpenAPITools.Client; +using Org.OpenAPITools.Api; using Org.OpenAPITools.Model; namespace Org.OpenAPITools.IApi @@ -27,6 +28,11 @@ namespace Org.OpenAPITools.IApi /// public interface IPetApi : IApi { + /// + /// The class containing the events + /// + PetApiEvents Events { get; } + /// /// Add a new pet to the store /// @@ -252,6 +258,103 @@ namespace Org.OpenAPITools.IApi namespace Org.OpenAPITools.Api { + /// + /// Represents a collection of functions to interact with the API endpoints + /// This class is registered as transient. + /// + public class PetApiEvents + { + /// + /// The event raised after the server response + /// + public event EventHandler> OnAddPet; + + internal void ExecuteOnAddPet(ApiResponse apiResponse) + { + OnAddPet?.Invoke(this, new ApiResponseEventArgs(apiResponse)); + } + + /// + /// The event raised after the server response + /// + public event EventHandler> OnDeletePet; + + internal void ExecuteOnDeletePet(ApiResponse apiResponse) + { + OnDeletePet?.Invoke(this, new ApiResponseEventArgs(apiResponse)); + } + + /// + /// The event raised after the server response + /// + public event EventHandler>> OnFindPetsByStatus; + + internal void ExecuteOnFindPetsByStatus(ApiResponse> apiResponse) + { + OnFindPetsByStatus?.Invoke(this, new ApiResponseEventArgs>(apiResponse)); + } + + /// + /// The event raised after the server response + /// + public event EventHandler>> OnFindPetsByTags; + + internal void ExecuteOnFindPetsByTags(ApiResponse> apiResponse) + { + OnFindPetsByTags?.Invoke(this, new ApiResponseEventArgs>(apiResponse)); + } + + /// + /// The event raised after the server response + /// + public event EventHandler> OnGetPetById; + + internal void ExecuteOnGetPetById(ApiResponse apiResponse) + { + OnGetPetById?.Invoke(this, new ApiResponseEventArgs(apiResponse)); + } + + /// + /// The event raised after the server response + /// + public event EventHandler> OnUpdatePet; + + internal void ExecuteOnUpdatePet(ApiResponse apiResponse) + { + OnUpdatePet?.Invoke(this, new ApiResponseEventArgs(apiResponse)); + } + + /// + /// The event raised after the server response + /// + public event EventHandler> OnUpdatePetWithForm; + + internal void ExecuteOnUpdatePetWithForm(ApiResponse apiResponse) + { + OnUpdatePetWithForm?.Invoke(this, new ApiResponseEventArgs(apiResponse)); + } + + /// + /// The event raised after the server response + /// + public event EventHandler> OnUploadFile; + + internal void ExecuteOnUploadFile(ApiResponse apiResponse) + { + OnUploadFile?.Invoke(this, new ApiResponseEventArgs(apiResponse)); + } + + /// + /// The event raised after the server response + /// + public event EventHandler> OnUploadFileWithRequiredFile; + + internal void ExecuteOnUploadFileWithRequiredFile(ApiResponse apiResponse) + { + OnUploadFileWithRequiredFile?.Invoke(this, new ApiResponseEventArgs(apiResponse)); + } + } + /// /// Represents a collection of functions to interact with the API endpoints /// @@ -269,6 +372,11 @@ namespace Org.OpenAPITools.Api /// public HttpClient HttpClient { get; } + /// + /// The class containing the events + /// + public PetApiEvents Events { get; } + /// /// A token provider of type /// @@ -298,7 +406,7 @@ namespace Org.OpenAPITools.Api /// Initializes a new instance of the class. /// /// - public PetApi(ILogger logger, HttpClient httpClient, JsonSerializerOptionsProvider jsonSerializerOptionsProvider, + public PetApi(ILogger logger, HttpClient httpClient, JsonSerializerOptionsProvider jsonSerializerOptionsProvider, PetApiEvents petApiEvents, TokenProvider apiKeyProvider, TokenProvider bearerTokenProvider, TokenProvider basicTokenProvider, @@ -308,6 +416,7 @@ namespace Org.OpenAPITools.Api _jsonSerializerOptions = jsonSerializerOptionsProvider.Options; Logger = logger; HttpClient = httpClient; + Events = petApiEvents; ApiKeyProvider = apiKeyProvider; BearerTokenProvider = bearerTokenProvider; BasicTokenProvider = basicTokenProvider; @@ -459,6 +568,8 @@ namespace Org.OpenAPITools.Api AfterAddPetDefaultImplementation(apiResponseLocalVar, pet); + Events.ExecuteOnAddPet(apiResponseLocalVar); + if (apiResponseLocalVar.StatusCode == (HttpStatusCode) 429) foreach(TokenBase tokenBaseLocalVar in tokenBaseLocalVars) tokenBaseLocalVar.BeginRateLimit(); @@ -608,6 +719,8 @@ namespace Org.OpenAPITools.Api AfterDeletePetDefaultImplementation(apiResponseLocalVar, petId, apiKey); + Events.ExecuteOnDeletePet(apiResponseLocalVar); + if (apiResponseLocalVar.StatusCode == (HttpStatusCode) 429) foreach(TokenBase tokenBaseLocalVar in tokenBaseLocalVars) tokenBaseLocalVar.BeginRateLimit(); @@ -769,6 +882,8 @@ namespace Org.OpenAPITools.Api AfterFindPetsByStatusDefaultImplementation(apiResponseLocalVar, status); + Events.ExecuteOnFindPetsByStatus(apiResponseLocalVar); + if (apiResponseLocalVar.StatusCode == (HttpStatusCode) 429) foreach(TokenBase tokenBaseLocalVar in tokenBaseLocalVars) tokenBaseLocalVar.BeginRateLimit(); @@ -934,6 +1049,8 @@ namespace Org.OpenAPITools.Api AfterFindPetsByTagsDefaultImplementation(apiResponseLocalVar, tags); + Events.ExecuteOnFindPetsByTags(apiResponseLocalVar); + if (apiResponseLocalVar.StatusCode == (HttpStatusCode) 429) foreach(TokenBase tokenBaseLocalVar in tokenBaseLocalVars) tokenBaseLocalVar.BeginRateLimit(); @@ -1071,6 +1188,8 @@ namespace Org.OpenAPITools.Api AfterGetPetByIdDefaultImplementation(apiResponseLocalVar, petId); + Events.ExecuteOnGetPetById(apiResponseLocalVar); + if (apiResponseLocalVar.StatusCode == (HttpStatusCode) 429) foreach(TokenBase tokenBaseLocalVar in tokenBaseLocalVars) tokenBaseLocalVar.BeginRateLimit(); @@ -1230,6 +1349,8 @@ namespace Org.OpenAPITools.Api AfterUpdatePetDefaultImplementation(apiResponseLocalVar, pet); + Events.ExecuteOnUpdatePet(apiResponseLocalVar); + if (apiResponseLocalVar.StatusCode == (HttpStatusCode) 429) foreach(TokenBase tokenBaseLocalVar in tokenBaseLocalVars) tokenBaseLocalVar.BeginRateLimit(); @@ -1407,6 +1528,8 @@ namespace Org.OpenAPITools.Api AfterUpdatePetWithFormDefaultImplementation(apiResponseLocalVar, petId, name, status); + Events.ExecuteOnUpdatePetWithForm(apiResponseLocalVar); + if (apiResponseLocalVar.StatusCode == (HttpStatusCode) 429) foreach(TokenBase tokenBaseLocalVar in tokenBaseLocalVars) tokenBaseLocalVar.BeginRateLimit(); @@ -1589,6 +1712,8 @@ namespace Org.OpenAPITools.Api AfterUploadFileDefaultImplementation(apiResponseLocalVar, petId, file, additionalMetadata); + Events.ExecuteOnUploadFile(apiResponseLocalVar); + if (apiResponseLocalVar.StatusCode == (HttpStatusCode) 429) foreach(TokenBase tokenBaseLocalVar in tokenBaseLocalVars) tokenBaseLocalVar.BeginRateLimit(); @@ -1771,6 +1896,8 @@ namespace Org.OpenAPITools.Api AfterUploadFileWithRequiredFileDefaultImplementation(apiResponseLocalVar, requiredFile, petId, additionalMetadata); + Events.ExecuteOnUploadFileWithRequiredFile(apiResponseLocalVar); + if (apiResponseLocalVar.StatusCode == (HttpStatusCode) 429) foreach(TokenBase tokenBaseLocalVar in tokenBaseLocalVars) tokenBaseLocalVar.BeginRateLimit(); diff --git a/samples/client/petstore/csharp/OpenAPIClient-generichost-net6.0/src/Org.OpenAPITools/Api/StoreApi.cs b/samples/client/petstore/csharp/OpenAPIClient-generichost-net6.0/src/Org.OpenAPITools/Api/StoreApi.cs index 42a157596ce..c80edd61c5d 100644 --- a/samples/client/petstore/csharp/OpenAPIClient-generichost-net6.0/src/Org.OpenAPITools/Api/StoreApi.cs +++ b/samples/client/petstore/csharp/OpenAPIClient-generichost-net6.0/src/Org.OpenAPITools/Api/StoreApi.cs @@ -17,6 +17,7 @@ using System.Net.Http; using System.Net.Http.Headers; using System.Text.Json; using Org.OpenAPITools.Client; +using Org.OpenAPITools.Api; using Org.OpenAPITools.Model; namespace Org.OpenAPITools.IApi @@ -27,6 +28,11 @@ namespace Org.OpenAPITools.IApi /// public interface IStoreApi : IApi { + /// + /// The class containing the events + /// + StoreApiEvents Events { get; } + /// /// Delete purchase order by ID /// @@ -121,6 +127,53 @@ namespace Org.OpenAPITools.IApi namespace Org.OpenAPITools.Api { + /// + /// Represents a collection of functions to interact with the API endpoints + /// This class is registered as transient. + /// + public class StoreApiEvents + { + /// + /// The event raised after the server response + /// + public event EventHandler> OnDeleteOrder; + + internal void ExecuteOnDeleteOrder(ApiResponse apiResponse) + { + OnDeleteOrder?.Invoke(this, new ApiResponseEventArgs(apiResponse)); + } + + /// + /// The event raised after the server response + /// + public event EventHandler>> OnGetInventory; + + internal void ExecuteOnGetInventory(ApiResponse> apiResponse) + { + OnGetInventory?.Invoke(this, new ApiResponseEventArgs>(apiResponse)); + } + + /// + /// The event raised after the server response + /// + public event EventHandler> OnGetOrderById; + + internal void ExecuteOnGetOrderById(ApiResponse apiResponse) + { + OnGetOrderById?.Invoke(this, new ApiResponseEventArgs(apiResponse)); + } + + /// + /// The event raised after the server response + /// + public event EventHandler> OnPlaceOrder; + + internal void ExecuteOnPlaceOrder(ApiResponse apiResponse) + { + OnPlaceOrder?.Invoke(this, new ApiResponseEventArgs(apiResponse)); + } + } + /// /// Represents a collection of functions to interact with the API endpoints /// @@ -138,6 +191,11 @@ namespace Org.OpenAPITools.Api /// public HttpClient HttpClient { get; } + /// + /// The class containing the events + /// + public StoreApiEvents Events { get; } + /// /// A token provider of type /// @@ -167,7 +225,7 @@ namespace Org.OpenAPITools.Api /// Initializes a new instance of the class. /// /// - public StoreApi(ILogger logger, HttpClient httpClient, JsonSerializerOptionsProvider jsonSerializerOptionsProvider, + public StoreApi(ILogger logger, HttpClient httpClient, JsonSerializerOptionsProvider jsonSerializerOptionsProvider, StoreApiEvents storeApiEvents, TokenProvider apiKeyProvider, TokenProvider bearerTokenProvider, TokenProvider basicTokenProvider, @@ -177,6 +235,7 @@ namespace Org.OpenAPITools.Api _jsonSerializerOptions = jsonSerializerOptionsProvider.Options; Logger = logger; HttpClient = httpClient; + Events = storeApiEvents; ApiKeyProvider = apiKeyProvider; BearerTokenProvider = bearerTokenProvider; BasicTokenProvider = basicTokenProvider; @@ -297,6 +356,8 @@ namespace Org.OpenAPITools.Api AfterDeleteOrderDefaultImplementation(apiResponseLocalVar, orderId); + Events.ExecuteOnDeleteOrder(apiResponseLocalVar); + return apiResponseLocalVar; } } @@ -414,6 +475,8 @@ namespace Org.OpenAPITools.Api AfterGetInventoryDefaultImplementation(apiResponseLocalVar); + Events.ExecuteOnGetInventory(apiResponseLocalVar); + if (apiResponseLocalVar.StatusCode == (HttpStatusCode) 429) foreach(TokenBase tokenBaseLocalVar in tokenBaseLocalVars) tokenBaseLocalVar.BeginRateLimit(); @@ -539,6 +602,8 @@ namespace Org.OpenAPITools.Api AfterGetOrderByIdDefaultImplementation(apiResponseLocalVar, orderId); + Events.ExecuteOnGetOrderById(apiResponseLocalVar); + return apiResponseLocalVar; } } @@ -685,6 +750,8 @@ namespace Org.OpenAPITools.Api AfterPlaceOrderDefaultImplementation(apiResponseLocalVar, order); + Events.ExecuteOnPlaceOrder(apiResponseLocalVar); + return apiResponseLocalVar; } } diff --git a/samples/client/petstore/csharp/OpenAPIClient-generichost-net6.0/src/Org.OpenAPITools/Api/UserApi.cs b/samples/client/petstore/csharp/OpenAPIClient-generichost-net6.0/src/Org.OpenAPITools/Api/UserApi.cs index 24aa1eb01cb..64bc74c48bd 100644 --- a/samples/client/petstore/csharp/OpenAPIClient-generichost-net6.0/src/Org.OpenAPITools/Api/UserApi.cs +++ b/samples/client/petstore/csharp/OpenAPIClient-generichost-net6.0/src/Org.OpenAPITools/Api/UserApi.cs @@ -17,6 +17,7 @@ using System.Net.Http; using System.Net.Http.Headers; using System.Text.Json; using Org.OpenAPITools.Client; +using Org.OpenAPITools.Api; using Org.OpenAPITools.Model; namespace Org.OpenAPITools.IApi @@ -27,6 +28,11 @@ namespace Org.OpenAPITools.IApi /// public interface IUserApi : IApi { + /// + /// The class containing the events + /// + UserApiEvents Events { get; } + /// /// Create user /// @@ -217,6 +223,93 @@ namespace Org.OpenAPITools.IApi namespace Org.OpenAPITools.Api { + /// + /// Represents a collection of functions to interact with the API endpoints + /// This class is registered as transient. + /// + public class UserApiEvents + { + /// + /// The event raised after the server response + /// + public event EventHandler> OnCreateUser; + + internal void ExecuteOnCreateUser(ApiResponse apiResponse) + { + OnCreateUser?.Invoke(this, new ApiResponseEventArgs(apiResponse)); + } + + /// + /// The event raised after the server response + /// + public event EventHandler> OnCreateUsersWithArrayInput; + + internal void ExecuteOnCreateUsersWithArrayInput(ApiResponse apiResponse) + { + OnCreateUsersWithArrayInput?.Invoke(this, new ApiResponseEventArgs(apiResponse)); + } + + /// + /// The event raised after the server response + /// + public event EventHandler> OnCreateUsersWithListInput; + + internal void ExecuteOnCreateUsersWithListInput(ApiResponse apiResponse) + { + OnCreateUsersWithListInput?.Invoke(this, new ApiResponseEventArgs(apiResponse)); + } + + /// + /// The event raised after the server response + /// + public event EventHandler> OnDeleteUser; + + internal void ExecuteOnDeleteUser(ApiResponse apiResponse) + { + OnDeleteUser?.Invoke(this, new ApiResponseEventArgs(apiResponse)); + } + + /// + /// The event raised after the server response + /// + public event EventHandler> OnGetUserByName; + + internal void ExecuteOnGetUserByName(ApiResponse apiResponse) + { + OnGetUserByName?.Invoke(this, new ApiResponseEventArgs(apiResponse)); + } + + /// + /// The event raised after the server response + /// + public event EventHandler> OnLoginUser; + + internal void ExecuteOnLoginUser(ApiResponse apiResponse) + { + OnLoginUser?.Invoke(this, new ApiResponseEventArgs(apiResponse)); + } + + /// + /// The event raised after the server response + /// + public event EventHandler> OnLogoutUser; + + internal void ExecuteOnLogoutUser(ApiResponse apiResponse) + { + OnLogoutUser?.Invoke(this, new ApiResponseEventArgs(apiResponse)); + } + + /// + /// The event raised after the server response + /// + public event EventHandler> OnUpdateUser; + + internal void ExecuteOnUpdateUser(ApiResponse apiResponse) + { + OnUpdateUser?.Invoke(this, new ApiResponseEventArgs(apiResponse)); + } + } + /// /// Represents a collection of functions to interact with the API endpoints /// @@ -234,6 +327,11 @@ namespace Org.OpenAPITools.Api /// public HttpClient HttpClient { get; } + /// + /// The class containing the events + /// + public UserApiEvents Events { get; } + /// /// A token provider of type /// @@ -263,7 +361,7 @@ namespace Org.OpenAPITools.Api /// Initializes a new instance of the class. /// /// - public UserApi(ILogger logger, HttpClient httpClient, JsonSerializerOptionsProvider jsonSerializerOptionsProvider, + public UserApi(ILogger logger, HttpClient httpClient, JsonSerializerOptionsProvider jsonSerializerOptionsProvider, UserApiEvents userApiEvents, TokenProvider apiKeyProvider, TokenProvider bearerTokenProvider, TokenProvider basicTokenProvider, @@ -273,6 +371,7 @@ namespace Org.OpenAPITools.Api _jsonSerializerOptions = jsonSerializerOptionsProvider.Options; Logger = logger; HttpClient = httpClient; + Events = userApiEvents; ApiKeyProvider = apiKeyProvider; BearerTokenProvider = bearerTokenProvider; BasicTokenProvider = basicTokenProvider; @@ -405,6 +504,8 @@ namespace Org.OpenAPITools.Api AfterCreateUserDefaultImplementation(apiResponseLocalVar, user); + Events.ExecuteOnCreateUser(apiResponseLocalVar); + return apiResponseLocalVar; } } @@ -541,6 +642,8 @@ namespace Org.OpenAPITools.Api AfterCreateUsersWithArrayInputDefaultImplementation(apiResponseLocalVar, user); + Events.ExecuteOnCreateUsersWithArrayInput(apiResponseLocalVar); + return apiResponseLocalVar; } } @@ -677,6 +780,8 @@ namespace Org.OpenAPITools.Api AfterCreateUsersWithListInputDefaultImplementation(apiResponseLocalVar, user); + Events.ExecuteOnCreateUsersWithListInput(apiResponseLocalVar); + return apiResponseLocalVar; } } @@ -801,6 +906,8 @@ namespace Org.OpenAPITools.Api AfterDeleteUserDefaultImplementation(apiResponseLocalVar, username); + Events.ExecuteOnDeleteUser(apiResponseLocalVar); + return apiResponseLocalVar; } } @@ -935,6 +1042,8 @@ namespace Org.OpenAPITools.Api AfterGetUserByNameDefaultImplementation(apiResponseLocalVar, username); + Events.ExecuteOnGetUserByName(apiResponseLocalVar); + return apiResponseLocalVar; } } @@ -1085,6 +1194,8 @@ namespace Org.OpenAPITools.Api AfterLoginUserDefaultImplementation(apiResponseLocalVar, username, password); + Events.ExecuteOnLoginUser(apiResponseLocalVar); + return apiResponseLocalVar; } } @@ -1185,6 +1296,8 @@ namespace Org.OpenAPITools.Api AfterLogoutUserDefaultImplementation(apiResponseLocalVar); + Events.ExecuteOnLogoutUser(apiResponseLocalVar); + return apiResponseLocalVar; } } @@ -1332,6 +1445,8 @@ namespace Org.OpenAPITools.Api AfterUpdateUserDefaultImplementation(apiResponseLocalVar, user, username); + Events.ExecuteOnUpdateUser(apiResponseLocalVar); + return apiResponseLocalVar; } } diff --git a/samples/client/petstore/csharp/OpenAPIClient-generichost-net6.0/src/Org.OpenAPITools/Client/ApiResponseEventArgs.cs b/samples/client/petstore/csharp/OpenAPIClient-generichost-net6.0/src/Org.OpenAPITools/Client/ApiResponseEventArgs.cs index f87e53e8b04..28d50d6378f 100644 --- a/samples/client/petstore/csharp/OpenAPIClient-generichost-net6.0/src/Org.OpenAPITools/Client/ApiResponseEventArgs.cs +++ b/samples/client/petstore/csharp/OpenAPIClient-generichost-net6.0/src/Org.OpenAPITools/Client/ApiResponseEventArgs.cs @@ -1,58 +1,24 @@ using System; -using System.Net; namespace Org.OpenAPITools.Client { /// - /// Useful for tracking server health. + /// Useful for tracking server health /// - public class ApiResponseEventArgs : EventArgs + public class ApiResponseEventArgs : EventArgs { /// - /// The time the request was sent. + /// The ApiResponse /// - public DateTime RequestedAt { get; } + public ApiResponse ApiResponse { get; } /// - /// The time the response was received. + /// The ApiResponseEventArgs /// - public DateTime ReceivedAt { get; } - - /// - /// The HttpStatusCode received. - /// - public HttpStatusCode HttpStatus { get; } - - /// - /// The path requested. - /// - public string PathFormat { get; } - - /// - /// The elapsed time from request to response. - /// - public TimeSpan ToTimeSpan => this.ReceivedAt - this.RequestedAt; - - /// - /// The path - /// - public string Path { get; } - - /// - /// The event args used to track server health. - /// - /// - /// - /// - /// - /// - public ApiResponseEventArgs(DateTime requestedAt, DateTime receivedAt, HttpStatusCode httpStatus, string pathFormat, string path) + /// + public ApiResponseEventArgs(ApiResponse apiResponse) { - RequestedAt = requestedAt; - ReceivedAt = receivedAt; - HttpStatus = httpStatus; - PathFormat = pathFormat; - Path = path; + ApiResponse = apiResponse; } } } diff --git a/samples/client/petstore/csharp/OpenAPIClient-generichost-net6.0/src/Org.OpenAPITools/Client/HostConfiguration.cs b/samples/client/petstore/csharp/OpenAPIClient-generichost-net6.0/src/Org.OpenAPITools/Client/HostConfiguration.cs index b80c081a3d0..8d01435c285 100644 --- a/samples/client/petstore/csharp/OpenAPIClient-generichost-net6.0/src/Org.OpenAPITools/Client/HostConfiguration.cs +++ b/samples/client/petstore/csharp/OpenAPIClient-generichost-net6.0/src/Org.OpenAPITools/Client/HostConfiguration.cs @@ -132,12 +132,19 @@ namespace Org.OpenAPITools.Client _jsonOptions.Converters.Add(new ZeroBasedEnumClassJsonConverter()); _services.AddSingleton(new JsonSerializerOptionsProvider(_jsonOptions)); _services.AddSingleton(); + _services.AddSingleton(); _services.AddTransient(); + _services.AddSingleton(); _services.AddTransient(); + _services.AddSingleton(); _services.AddTransient(); + _services.AddSingleton(); _services.AddTransient(); + _services.AddSingleton(); _services.AddTransient(); + _services.AddSingleton(); _services.AddTransient(); + _services.AddSingleton(); _services.AddTransient(); } diff --git a/samples/client/petstore/csharp/OpenAPIClient-generichost-netcore-latest-allOf/src/Org.OpenAPITools/Api/DefaultApi.cs b/samples/client/petstore/csharp/OpenAPIClient-generichost-netcore-latest-allOf/src/Org.OpenAPITools/Api/DefaultApi.cs index 1e10bdf8c90..9cd6b5b3f17 100644 --- a/samples/client/petstore/csharp/OpenAPIClient-generichost-netcore-latest-allOf/src/Org.OpenAPITools/Api/DefaultApi.cs +++ b/samples/client/petstore/csharp/OpenAPIClient-generichost-netcore-latest-allOf/src/Org.OpenAPITools/Api/DefaultApi.cs @@ -19,6 +19,7 @@ using System.Net.Http; using System.Net.Http.Headers; using System.Text.Json; using Org.OpenAPITools.Client; +using Org.OpenAPITools.Api; using Org.OpenAPITools.Model; namespace Org.OpenAPITools.IApi @@ -29,6 +30,11 @@ namespace Org.OpenAPITools.IApi /// public interface IDefaultApi : IApi { + /// + /// The class containing the events + /// + DefaultApiEvents Events { get; } + /// /// /// @@ -56,6 +62,23 @@ namespace Org.OpenAPITools.IApi namespace Org.OpenAPITools.Api { + /// + /// Represents a collection of functions to interact with the API endpoints + /// This class is registered as transient. + /// + public class DefaultApiEvents + { + /// + /// The event raised after the server response + /// + public event EventHandler>? OnList; + + internal void ExecuteOnList(ApiResponse apiResponse) + { + OnList?.Invoke(this, new ApiResponseEventArgs(apiResponse)); + } + } + /// /// Represents a collection of functions to interact with the API endpoints /// @@ -73,15 +96,21 @@ namespace Org.OpenAPITools.Api /// public HttpClient HttpClient { get; } + /// + /// The class containing the events + /// + public DefaultApiEvents Events { get; } + /// /// Initializes a new instance of the class. /// /// - public DefaultApi(ILogger logger, HttpClient httpClient, JsonSerializerOptionsProvider jsonSerializerOptionsProvider) + public DefaultApi(ILogger logger, HttpClient httpClient, JsonSerializerOptionsProvider jsonSerializerOptionsProvider, DefaultApiEvents defaultApiEvents) { _jsonSerializerOptions = jsonSerializerOptionsProvider.Options; Logger = logger; HttpClient = httpClient; + Events = defaultApiEvents; } partial void FormatList(ref string personId); @@ -206,6 +235,8 @@ namespace Org.OpenAPITools.Api AfterListDefaultImplementation(apiResponseLocalVar, personId); + Events.ExecuteOnList(apiResponseLocalVar); + return apiResponseLocalVar; } } diff --git a/samples/client/petstore/csharp/OpenAPIClient-generichost-netcore-latest-allOf/src/Org.OpenAPITools/Client/ApiResponseEventArgs.cs b/samples/client/petstore/csharp/OpenAPIClient-generichost-netcore-latest-allOf/src/Org.OpenAPITools/Client/ApiResponseEventArgs.cs index f87e53e8b04..28d50d6378f 100644 --- a/samples/client/petstore/csharp/OpenAPIClient-generichost-netcore-latest-allOf/src/Org.OpenAPITools/Client/ApiResponseEventArgs.cs +++ b/samples/client/petstore/csharp/OpenAPIClient-generichost-netcore-latest-allOf/src/Org.OpenAPITools/Client/ApiResponseEventArgs.cs @@ -1,58 +1,24 @@ using System; -using System.Net; namespace Org.OpenAPITools.Client { /// - /// Useful for tracking server health. + /// Useful for tracking server health /// - public class ApiResponseEventArgs : EventArgs + public class ApiResponseEventArgs : EventArgs { /// - /// The time the request was sent. + /// The ApiResponse /// - public DateTime RequestedAt { get; } + public ApiResponse ApiResponse { get; } /// - /// The time the response was received. + /// The ApiResponseEventArgs /// - public DateTime ReceivedAt { get; } - - /// - /// The HttpStatusCode received. - /// - public HttpStatusCode HttpStatus { get; } - - /// - /// The path requested. - /// - public string PathFormat { get; } - - /// - /// The elapsed time from request to response. - /// - public TimeSpan ToTimeSpan => this.ReceivedAt - this.RequestedAt; - - /// - /// The path - /// - public string Path { get; } - - /// - /// The event args used to track server health. - /// - /// - /// - /// - /// - /// - public ApiResponseEventArgs(DateTime requestedAt, DateTime receivedAt, HttpStatusCode httpStatus, string pathFormat, string path) + /// + public ApiResponseEventArgs(ApiResponse apiResponse) { - RequestedAt = requestedAt; - ReceivedAt = receivedAt; - HttpStatus = httpStatus; - PathFormat = pathFormat; - Path = path; + ApiResponse = apiResponse; } } } diff --git a/samples/client/petstore/csharp/OpenAPIClient-generichost-netcore-latest-allOf/src/Org.OpenAPITools/Client/HostConfiguration.cs b/samples/client/petstore/csharp/OpenAPIClient-generichost-netcore-latest-allOf/src/Org.OpenAPITools/Client/HostConfiguration.cs index 311bbf80c43..2b7faf39963 100644 --- a/samples/client/petstore/csharp/OpenAPIClient-generichost-netcore-latest-allOf/src/Org.OpenAPITools/Client/HostConfiguration.cs +++ b/samples/client/petstore/csharp/OpenAPIClient-generichost-netcore-latest-allOf/src/Org.OpenAPITools/Client/HostConfiguration.cs @@ -47,6 +47,7 @@ namespace Org.OpenAPITools.Client _jsonOptions.Converters.Add(new PersonJsonConverter()); _services.AddSingleton(new JsonSerializerOptionsProvider(_jsonOptions)); _services.AddSingleton(); + _services.AddSingleton(); _services.AddTransient(); } diff --git a/samples/client/petstore/csharp/OpenAPIClient-generichost-netcore-latest-anyOf/src/Org.OpenAPITools/Api/DefaultApi.cs b/samples/client/petstore/csharp/OpenAPIClient-generichost-netcore-latest-anyOf/src/Org.OpenAPITools/Api/DefaultApi.cs index eebc4fe1194..21b4ff426b9 100644 --- a/samples/client/petstore/csharp/OpenAPIClient-generichost-netcore-latest-anyOf/src/Org.OpenAPITools/Api/DefaultApi.cs +++ b/samples/client/petstore/csharp/OpenAPIClient-generichost-netcore-latest-anyOf/src/Org.OpenAPITools/Api/DefaultApi.cs @@ -19,6 +19,7 @@ using System.Net.Http; using System.Net.Http.Headers; using System.Text.Json; using Org.OpenAPITools.Client; +using Org.OpenAPITools.Api; using Org.OpenAPITools.Model; namespace Org.OpenAPITools.IApi @@ -29,6 +30,11 @@ namespace Org.OpenAPITools.IApi /// public interface IDefaultApi : IApi { + /// + /// The class containing the events + /// + DefaultApiEvents Events { get; } + /// /// /// @@ -54,6 +60,23 @@ namespace Org.OpenAPITools.IApi namespace Org.OpenAPITools.Api { + /// + /// Represents a collection of functions to interact with the API endpoints + /// This class is registered as transient. + /// + public class DefaultApiEvents + { + /// + /// The event raised after the server response + /// + public event EventHandler>? OnRootGet; + + internal void ExecuteOnRootGet(ApiResponse apiResponse) + { + OnRootGet?.Invoke(this, new ApiResponseEventArgs(apiResponse)); + } + } + /// /// Represents a collection of functions to interact with the API endpoints /// @@ -71,15 +94,21 @@ namespace Org.OpenAPITools.Api /// public HttpClient HttpClient { get; } + /// + /// The class containing the events + /// + public DefaultApiEvents Events { get; } + /// /// Initializes a new instance of the class. /// /// - public DefaultApi(ILogger logger, HttpClient httpClient, JsonSerializerOptionsProvider jsonSerializerOptionsProvider) + public DefaultApi(ILogger logger, HttpClient httpClient, JsonSerializerOptionsProvider jsonSerializerOptionsProvider, DefaultApiEvents defaultApiEvents) { _jsonSerializerOptions = jsonSerializerOptionsProvider.Options; Logger = logger; HttpClient = httpClient; + Events = defaultApiEvents; } /// @@ -180,6 +209,8 @@ namespace Org.OpenAPITools.Api AfterRootGetDefaultImplementation(apiResponseLocalVar); + Events.ExecuteOnRootGet(apiResponseLocalVar); + return apiResponseLocalVar; } } diff --git a/samples/client/petstore/csharp/OpenAPIClient-generichost-netcore-latest-anyOf/src/Org.OpenAPITools/Client/ApiResponseEventArgs.cs b/samples/client/petstore/csharp/OpenAPIClient-generichost-netcore-latest-anyOf/src/Org.OpenAPITools/Client/ApiResponseEventArgs.cs index f87e53e8b04..28d50d6378f 100644 --- a/samples/client/petstore/csharp/OpenAPIClient-generichost-netcore-latest-anyOf/src/Org.OpenAPITools/Client/ApiResponseEventArgs.cs +++ b/samples/client/petstore/csharp/OpenAPIClient-generichost-netcore-latest-anyOf/src/Org.OpenAPITools/Client/ApiResponseEventArgs.cs @@ -1,58 +1,24 @@ using System; -using System.Net; namespace Org.OpenAPITools.Client { /// - /// Useful for tracking server health. + /// Useful for tracking server health /// - public class ApiResponseEventArgs : EventArgs + public class ApiResponseEventArgs : EventArgs { /// - /// The time the request was sent. + /// The ApiResponse /// - public DateTime RequestedAt { get; } + public ApiResponse ApiResponse { get; } /// - /// The time the response was received. + /// The ApiResponseEventArgs /// - public DateTime ReceivedAt { get; } - - /// - /// The HttpStatusCode received. - /// - public HttpStatusCode HttpStatus { get; } - - /// - /// The path requested. - /// - public string PathFormat { get; } - - /// - /// The elapsed time from request to response. - /// - public TimeSpan ToTimeSpan => this.ReceivedAt - this.RequestedAt; - - /// - /// The path - /// - public string Path { get; } - - /// - /// The event args used to track server health. - /// - /// - /// - /// - /// - /// - public ApiResponseEventArgs(DateTime requestedAt, DateTime receivedAt, HttpStatusCode httpStatus, string pathFormat, string path) + /// + public ApiResponseEventArgs(ApiResponse apiResponse) { - RequestedAt = requestedAt; - ReceivedAt = receivedAt; - HttpStatus = httpStatus; - PathFormat = pathFormat; - Path = path; + ApiResponse = apiResponse; } } } diff --git a/samples/client/petstore/csharp/OpenAPIClient-generichost-netcore-latest-anyOf/src/Org.OpenAPITools/Client/HostConfiguration.cs b/samples/client/petstore/csharp/OpenAPIClient-generichost-netcore-latest-anyOf/src/Org.OpenAPITools/Client/HostConfiguration.cs index 490fd67f315..48df438f4ee 100644 --- a/samples/client/petstore/csharp/OpenAPIClient-generichost-netcore-latest-anyOf/src/Org.OpenAPITools/Client/HostConfiguration.cs +++ b/samples/client/petstore/csharp/OpenAPIClient-generichost-netcore-latest-anyOf/src/Org.OpenAPITools/Client/HostConfiguration.cs @@ -47,6 +47,7 @@ namespace Org.OpenAPITools.Client _jsonOptions.Converters.Add(new FruitJsonConverter()); _services.AddSingleton(new JsonSerializerOptionsProvider(_jsonOptions)); _services.AddSingleton(); + _services.AddSingleton(); _services.AddTransient(); } diff --git a/samples/client/petstore/csharp/OpenAPIClient-generichost-netcore-latest-oneOf/src/Org.OpenAPITools/Api/DefaultApi.cs b/samples/client/petstore/csharp/OpenAPIClient-generichost-netcore-latest-oneOf/src/Org.OpenAPITools/Api/DefaultApi.cs index eebc4fe1194..21b4ff426b9 100644 --- a/samples/client/petstore/csharp/OpenAPIClient-generichost-netcore-latest-oneOf/src/Org.OpenAPITools/Api/DefaultApi.cs +++ b/samples/client/petstore/csharp/OpenAPIClient-generichost-netcore-latest-oneOf/src/Org.OpenAPITools/Api/DefaultApi.cs @@ -19,6 +19,7 @@ using System.Net.Http; using System.Net.Http.Headers; using System.Text.Json; using Org.OpenAPITools.Client; +using Org.OpenAPITools.Api; using Org.OpenAPITools.Model; namespace Org.OpenAPITools.IApi @@ -29,6 +30,11 @@ namespace Org.OpenAPITools.IApi /// public interface IDefaultApi : IApi { + /// + /// The class containing the events + /// + DefaultApiEvents Events { get; } + /// /// /// @@ -54,6 +60,23 @@ namespace Org.OpenAPITools.IApi namespace Org.OpenAPITools.Api { + /// + /// Represents a collection of functions to interact with the API endpoints + /// This class is registered as transient. + /// + public class DefaultApiEvents + { + /// + /// The event raised after the server response + /// + public event EventHandler>? OnRootGet; + + internal void ExecuteOnRootGet(ApiResponse apiResponse) + { + OnRootGet?.Invoke(this, new ApiResponseEventArgs(apiResponse)); + } + } + /// /// Represents a collection of functions to interact with the API endpoints /// @@ -71,15 +94,21 @@ namespace Org.OpenAPITools.Api /// public HttpClient HttpClient { get; } + /// + /// The class containing the events + /// + public DefaultApiEvents Events { get; } + /// /// Initializes a new instance of the class. /// /// - public DefaultApi(ILogger logger, HttpClient httpClient, JsonSerializerOptionsProvider jsonSerializerOptionsProvider) + public DefaultApi(ILogger logger, HttpClient httpClient, JsonSerializerOptionsProvider jsonSerializerOptionsProvider, DefaultApiEvents defaultApiEvents) { _jsonSerializerOptions = jsonSerializerOptionsProvider.Options; Logger = logger; HttpClient = httpClient; + Events = defaultApiEvents; } /// @@ -180,6 +209,8 @@ namespace Org.OpenAPITools.Api AfterRootGetDefaultImplementation(apiResponseLocalVar); + Events.ExecuteOnRootGet(apiResponseLocalVar); + return apiResponseLocalVar; } } diff --git a/samples/client/petstore/csharp/OpenAPIClient-generichost-netcore-latest-oneOf/src/Org.OpenAPITools/Client/ApiResponseEventArgs.cs b/samples/client/petstore/csharp/OpenAPIClient-generichost-netcore-latest-oneOf/src/Org.OpenAPITools/Client/ApiResponseEventArgs.cs index f87e53e8b04..28d50d6378f 100644 --- a/samples/client/petstore/csharp/OpenAPIClient-generichost-netcore-latest-oneOf/src/Org.OpenAPITools/Client/ApiResponseEventArgs.cs +++ b/samples/client/petstore/csharp/OpenAPIClient-generichost-netcore-latest-oneOf/src/Org.OpenAPITools/Client/ApiResponseEventArgs.cs @@ -1,58 +1,24 @@ using System; -using System.Net; namespace Org.OpenAPITools.Client { /// - /// Useful for tracking server health. + /// Useful for tracking server health /// - public class ApiResponseEventArgs : EventArgs + public class ApiResponseEventArgs : EventArgs { /// - /// The time the request was sent. + /// The ApiResponse /// - public DateTime RequestedAt { get; } + public ApiResponse ApiResponse { get; } /// - /// The time the response was received. + /// The ApiResponseEventArgs /// - public DateTime ReceivedAt { get; } - - /// - /// The HttpStatusCode received. - /// - public HttpStatusCode HttpStatus { get; } - - /// - /// The path requested. - /// - public string PathFormat { get; } - - /// - /// The elapsed time from request to response. - /// - public TimeSpan ToTimeSpan => this.ReceivedAt - this.RequestedAt; - - /// - /// The path - /// - public string Path { get; } - - /// - /// The event args used to track server health. - /// - /// - /// - /// - /// - /// - public ApiResponseEventArgs(DateTime requestedAt, DateTime receivedAt, HttpStatusCode httpStatus, string pathFormat, string path) + /// + public ApiResponseEventArgs(ApiResponse apiResponse) { - RequestedAt = requestedAt; - ReceivedAt = receivedAt; - HttpStatus = httpStatus; - PathFormat = pathFormat; - Path = path; + ApiResponse = apiResponse; } } } diff --git a/samples/client/petstore/csharp/OpenAPIClient-generichost-netcore-latest-oneOf/src/Org.OpenAPITools/Client/HostConfiguration.cs b/samples/client/petstore/csharp/OpenAPIClient-generichost-netcore-latest-oneOf/src/Org.OpenAPITools/Client/HostConfiguration.cs index 490fd67f315..48df438f4ee 100644 --- a/samples/client/petstore/csharp/OpenAPIClient-generichost-netcore-latest-oneOf/src/Org.OpenAPITools/Client/HostConfiguration.cs +++ b/samples/client/petstore/csharp/OpenAPIClient-generichost-netcore-latest-oneOf/src/Org.OpenAPITools/Client/HostConfiguration.cs @@ -47,6 +47,7 @@ namespace Org.OpenAPITools.Client _jsonOptions.Converters.Add(new FruitJsonConverter()); _services.AddSingleton(new JsonSerializerOptionsProvider(_jsonOptions)); _services.AddSingleton(); + _services.AddSingleton(); _services.AddTransient(); } diff --git a/samples/client/petstore/csharp/OpenAPIClient-generichost-netstandard2.0/src/Org.OpenAPITools/Api/AnotherFakeApi.cs b/samples/client/petstore/csharp/OpenAPIClient-generichost-netstandard2.0/src/Org.OpenAPITools/Api/AnotherFakeApi.cs index 7c98548d4f1..c8d804c412f 100644 --- a/samples/client/petstore/csharp/OpenAPIClient-generichost-netstandard2.0/src/Org.OpenAPITools/Api/AnotherFakeApi.cs +++ b/samples/client/petstore/csharp/OpenAPIClient-generichost-netstandard2.0/src/Org.OpenAPITools/Api/AnotherFakeApi.cs @@ -17,6 +17,7 @@ using System.Net.Http; using System.Net.Http.Headers; using System.Text.Json; using Org.OpenAPITools.Client; +using Org.OpenAPITools.Api; using Org.OpenAPITools.Model; namespace Org.OpenAPITools.IApi @@ -27,6 +28,11 @@ namespace Org.OpenAPITools.IApi /// public interface IAnotherFakeApi : IApi { + /// + /// The class containing the events + /// + AnotherFakeApiEvents Events { get; } + /// /// To test special tags /// @@ -54,6 +60,23 @@ namespace Org.OpenAPITools.IApi namespace Org.OpenAPITools.Api { + /// + /// Represents a collection of functions to interact with the API endpoints + /// This class is registered as transient. + /// + public class AnotherFakeApiEvents + { + /// + /// The event raised after the server response + /// + public event EventHandler> OnCall123TestSpecialTags; + + internal void ExecuteOnCall123TestSpecialTags(ApiResponse apiResponse) + { + OnCall123TestSpecialTags?.Invoke(this, new ApiResponseEventArgs(apiResponse)); + } + } + /// /// Represents a collection of functions to interact with the API endpoints /// @@ -71,6 +94,11 @@ namespace Org.OpenAPITools.Api /// public HttpClient HttpClient { get; } + /// + /// The class containing the events + /// + public AnotherFakeApiEvents Events { get; } + /// /// A token provider of type /// @@ -100,7 +128,7 @@ namespace Org.OpenAPITools.Api /// Initializes a new instance of the class. /// /// - public AnotherFakeApi(ILogger logger, HttpClient httpClient, JsonSerializerOptionsProvider jsonSerializerOptionsProvider, + public AnotherFakeApi(ILogger logger, HttpClient httpClient, JsonSerializerOptionsProvider jsonSerializerOptionsProvider, AnotherFakeApiEvents anotherFakeApiEvents, TokenProvider apiKeyProvider, TokenProvider bearerTokenProvider, TokenProvider basicTokenProvider, @@ -110,6 +138,7 @@ namespace Org.OpenAPITools.Api _jsonSerializerOptions = jsonSerializerOptionsProvider.Options; Logger = logger; HttpClient = httpClient; + Events = anotherFakeApiEvents; ApiKeyProvider = apiKeyProvider; BearerTokenProvider = bearerTokenProvider; BasicTokenProvider = basicTokenProvider; @@ -250,6 +279,8 @@ namespace Org.OpenAPITools.Api AfterCall123TestSpecialTagsDefaultImplementation(apiResponseLocalVar, modelClient); + Events.ExecuteOnCall123TestSpecialTags(apiResponseLocalVar); + return apiResponseLocalVar; } } diff --git a/samples/client/petstore/csharp/OpenAPIClient-generichost-netstandard2.0/src/Org.OpenAPITools/Api/DefaultApi.cs b/samples/client/petstore/csharp/OpenAPIClient-generichost-netstandard2.0/src/Org.OpenAPITools/Api/DefaultApi.cs index fb656ed5462..784439aff14 100644 --- a/samples/client/petstore/csharp/OpenAPIClient-generichost-netstandard2.0/src/Org.OpenAPITools/Api/DefaultApi.cs +++ b/samples/client/petstore/csharp/OpenAPIClient-generichost-netstandard2.0/src/Org.OpenAPITools/Api/DefaultApi.cs @@ -17,6 +17,7 @@ using System.Net.Http; using System.Net.Http.Headers; using System.Text.Json; using Org.OpenAPITools.Client; +using Org.OpenAPITools.Api; using Org.OpenAPITools.Model; namespace Org.OpenAPITools.IApi @@ -27,6 +28,11 @@ namespace Org.OpenAPITools.IApi /// public interface IDefaultApi : IApi { + /// + /// The class containing the events + /// + DefaultApiEvents Events { get; } + /// /// /// @@ -96,6 +102,43 @@ namespace Org.OpenAPITools.IApi namespace Org.OpenAPITools.Api { + /// + /// Represents a collection of functions to interact with the API endpoints + /// This class is registered as transient. + /// + public class DefaultApiEvents + { + /// + /// The event raised after the server response + /// + public event EventHandler> OnFooGet; + + internal void ExecuteOnFooGet(ApiResponse apiResponse) + { + OnFooGet?.Invoke(this, new ApiResponseEventArgs(apiResponse)); + } + + /// + /// The event raised after the server response + /// + public event EventHandler> OnGetCountry; + + internal void ExecuteOnGetCountry(ApiResponse apiResponse) + { + OnGetCountry?.Invoke(this, new ApiResponseEventArgs(apiResponse)); + } + + /// + /// The event raised after the server response + /// + public event EventHandler>> OnHello; + + internal void ExecuteOnHello(ApiResponse> apiResponse) + { + OnHello?.Invoke(this, new ApiResponseEventArgs>(apiResponse)); + } + } + /// /// Represents a collection of functions to interact with the API endpoints /// @@ -113,6 +156,11 @@ namespace Org.OpenAPITools.Api /// public HttpClient HttpClient { get; } + /// + /// The class containing the events + /// + public DefaultApiEvents Events { get; } + /// /// A token provider of type /// @@ -142,7 +190,7 @@ namespace Org.OpenAPITools.Api /// Initializes a new instance of the class. /// /// - public DefaultApi(ILogger logger, HttpClient httpClient, JsonSerializerOptionsProvider jsonSerializerOptionsProvider, + public DefaultApi(ILogger logger, HttpClient httpClient, JsonSerializerOptionsProvider jsonSerializerOptionsProvider, DefaultApiEvents defaultApiEvents, TokenProvider apiKeyProvider, TokenProvider bearerTokenProvider, TokenProvider basicTokenProvider, @@ -152,6 +200,7 @@ namespace Org.OpenAPITools.Api _jsonSerializerOptions = jsonSerializerOptionsProvider.Options; Logger = logger; HttpClient = httpClient; + Events = defaultApiEvents; ApiKeyProvider = apiKeyProvider; BearerTokenProvider = bearerTokenProvider; BasicTokenProvider = basicTokenProvider; @@ -256,6 +305,8 @@ namespace Org.OpenAPITools.Api AfterFooGetDefaultImplementation(apiResponseLocalVar); + Events.ExecuteOnFooGet(apiResponseLocalVar); + return apiResponseLocalVar; } } @@ -398,6 +449,8 @@ namespace Org.OpenAPITools.Api AfterGetCountryDefaultImplementation(apiResponseLocalVar, country); + Events.ExecuteOnGetCountry(apiResponseLocalVar); + return apiResponseLocalVar; } } @@ -506,6 +559,8 @@ namespace Org.OpenAPITools.Api AfterHelloDefaultImplementation(apiResponseLocalVar); + Events.ExecuteOnHello(apiResponseLocalVar); + return apiResponseLocalVar; } } diff --git a/samples/client/petstore/csharp/OpenAPIClient-generichost-netstandard2.0/src/Org.OpenAPITools/Api/FakeApi.cs b/samples/client/petstore/csharp/OpenAPIClient-generichost-netstandard2.0/src/Org.OpenAPITools/Api/FakeApi.cs index 67c82a34370..ec092a3fc0e 100644 --- a/samples/client/petstore/csharp/OpenAPIClient-generichost-netstandard2.0/src/Org.OpenAPITools/Api/FakeApi.cs +++ b/samples/client/petstore/csharp/OpenAPIClient-generichost-netstandard2.0/src/Org.OpenAPITools/Api/FakeApi.cs @@ -17,6 +17,7 @@ using System.Net.Http; using System.Net.Http.Headers; using System.Text.Json; using Org.OpenAPITools.Client; +using Org.OpenAPITools.Api; using Org.OpenAPITools.Model; namespace Org.OpenAPITools.IApi @@ -27,6 +28,11 @@ namespace Org.OpenAPITools.IApi /// public interface IFakeApi : IApi { + /// + /// The class containing the events + /// + FakeApiEvents Events { get; } + /// /// Health check endpoint /// @@ -444,6 +450,163 @@ namespace Org.OpenAPITools.IApi namespace Org.OpenAPITools.Api { + /// + /// Represents a collection of functions to interact with the API endpoints + /// This class is registered as transient. + /// + public class FakeApiEvents + { + /// + /// The event raised after the server response + /// + public event EventHandler> OnFakeHealthGet; + + internal void ExecuteOnFakeHealthGet(ApiResponse apiResponse) + { + OnFakeHealthGet?.Invoke(this, new ApiResponseEventArgs(apiResponse)); + } + + /// + /// The event raised after the server response + /// + public event EventHandler> OnFakeOuterBooleanSerialize; + + internal void ExecuteOnFakeOuterBooleanSerialize(ApiResponse apiResponse) + { + OnFakeOuterBooleanSerialize?.Invoke(this, new ApiResponseEventArgs(apiResponse)); + } + + /// + /// The event raised after the server response + /// + public event EventHandler> OnFakeOuterCompositeSerialize; + + internal void ExecuteOnFakeOuterCompositeSerialize(ApiResponse apiResponse) + { + OnFakeOuterCompositeSerialize?.Invoke(this, new ApiResponseEventArgs(apiResponse)); + } + + /// + /// The event raised after the server response + /// + public event EventHandler> OnFakeOuterNumberSerialize; + + internal void ExecuteOnFakeOuterNumberSerialize(ApiResponse apiResponse) + { + OnFakeOuterNumberSerialize?.Invoke(this, new ApiResponseEventArgs(apiResponse)); + } + + /// + /// The event raised after the server response + /// + public event EventHandler> OnFakeOuterStringSerialize; + + internal void ExecuteOnFakeOuterStringSerialize(ApiResponse apiResponse) + { + OnFakeOuterStringSerialize?.Invoke(this, new ApiResponseEventArgs(apiResponse)); + } + + /// + /// The event raised after the server response + /// + public event EventHandler>> OnGetArrayOfEnums; + + internal void ExecuteOnGetArrayOfEnums(ApiResponse> apiResponse) + { + OnGetArrayOfEnums?.Invoke(this, new ApiResponseEventArgs>(apiResponse)); + } + + /// + /// The event raised after the server response + /// + public event EventHandler> OnTestBodyWithFileSchema; + + internal void ExecuteOnTestBodyWithFileSchema(ApiResponse apiResponse) + { + OnTestBodyWithFileSchema?.Invoke(this, new ApiResponseEventArgs(apiResponse)); + } + + /// + /// The event raised after the server response + /// + public event EventHandler> OnTestBodyWithQueryParams; + + internal void ExecuteOnTestBodyWithQueryParams(ApiResponse apiResponse) + { + OnTestBodyWithQueryParams?.Invoke(this, new ApiResponseEventArgs(apiResponse)); + } + + /// + /// The event raised after the server response + /// + public event EventHandler> OnTestClientModel; + + internal void ExecuteOnTestClientModel(ApiResponse apiResponse) + { + OnTestClientModel?.Invoke(this, new ApiResponseEventArgs(apiResponse)); + } + + /// + /// The event raised after the server response + /// + public event EventHandler> OnTestEndpointParameters; + + internal void ExecuteOnTestEndpointParameters(ApiResponse apiResponse) + { + OnTestEndpointParameters?.Invoke(this, new ApiResponseEventArgs(apiResponse)); + } + + /// + /// The event raised after the server response + /// + public event EventHandler> OnTestEnumParameters; + + internal void ExecuteOnTestEnumParameters(ApiResponse apiResponse) + { + OnTestEnumParameters?.Invoke(this, new ApiResponseEventArgs(apiResponse)); + } + + /// + /// The event raised after the server response + /// + public event EventHandler> OnTestGroupParameters; + + internal void ExecuteOnTestGroupParameters(ApiResponse apiResponse) + { + OnTestGroupParameters?.Invoke(this, new ApiResponseEventArgs(apiResponse)); + } + + /// + /// The event raised after the server response + /// + public event EventHandler> OnTestInlineAdditionalProperties; + + internal void ExecuteOnTestInlineAdditionalProperties(ApiResponse apiResponse) + { + OnTestInlineAdditionalProperties?.Invoke(this, new ApiResponseEventArgs(apiResponse)); + } + + /// + /// The event raised after the server response + /// + public event EventHandler> OnTestJsonFormData; + + internal void ExecuteOnTestJsonFormData(ApiResponse apiResponse) + { + OnTestJsonFormData?.Invoke(this, new ApiResponseEventArgs(apiResponse)); + } + + /// + /// The event raised after the server response + /// + public event EventHandler> OnTestQueryParameterCollectionFormat; + + internal void ExecuteOnTestQueryParameterCollectionFormat(ApiResponse apiResponse) + { + OnTestQueryParameterCollectionFormat?.Invoke(this, new ApiResponseEventArgs(apiResponse)); + } + } + /// /// Represents a collection of functions to interact with the API endpoints /// @@ -461,6 +624,11 @@ namespace Org.OpenAPITools.Api /// public HttpClient HttpClient { get; } + /// + /// The class containing the events + /// + public FakeApiEvents Events { get; } + /// /// A token provider of type /// @@ -490,7 +658,7 @@ namespace Org.OpenAPITools.Api /// Initializes a new instance of the class. /// /// - public FakeApi(ILogger logger, HttpClient httpClient, JsonSerializerOptionsProvider jsonSerializerOptionsProvider, + public FakeApi(ILogger logger, HttpClient httpClient, JsonSerializerOptionsProvider jsonSerializerOptionsProvider, FakeApiEvents fakeApiEvents, TokenProvider apiKeyProvider, TokenProvider bearerTokenProvider, TokenProvider basicTokenProvider, @@ -500,6 +668,7 @@ namespace Org.OpenAPITools.Api _jsonSerializerOptions = jsonSerializerOptionsProvider.Options; Logger = logger; HttpClient = httpClient; + Events = fakeApiEvents; ApiKeyProvider = apiKeyProvider; BearerTokenProvider = bearerTokenProvider; BasicTokenProvider = basicTokenProvider; @@ -604,6 +773,8 @@ namespace Org.OpenAPITools.Api AfterFakeHealthGetDefaultImplementation(apiResponseLocalVar); + Events.ExecuteOnFakeHealthGet(apiResponseLocalVar); + return apiResponseLocalVar; } } @@ -736,6 +907,8 @@ namespace Org.OpenAPITools.Api AfterFakeOuterBooleanSerializeDefaultImplementation(apiResponseLocalVar, body); + Events.ExecuteOnFakeOuterBooleanSerialize(apiResponseLocalVar); + return apiResponseLocalVar; } } @@ -881,6 +1054,8 @@ namespace Org.OpenAPITools.Api AfterFakeOuterCompositeSerializeDefaultImplementation(apiResponseLocalVar, outerComposite); + Events.ExecuteOnFakeOuterCompositeSerialize(apiResponseLocalVar); + return apiResponseLocalVar; } } @@ -1013,6 +1188,8 @@ namespace Org.OpenAPITools.Api AfterFakeOuterNumberSerializeDefaultImplementation(apiResponseLocalVar, body); + Events.ExecuteOnFakeOuterNumberSerialize(apiResponseLocalVar); + return apiResponseLocalVar; } } @@ -1170,6 +1347,8 @@ namespace Org.OpenAPITools.Api AfterFakeOuterStringSerializeDefaultImplementation(apiResponseLocalVar, requiredStringUuid, body); + Events.ExecuteOnFakeOuterStringSerialize(apiResponseLocalVar); + return apiResponseLocalVar; } } @@ -1278,6 +1457,8 @@ namespace Org.OpenAPITools.Api AfterGetArrayOfEnumsDefaultImplementation(apiResponseLocalVar); + Events.ExecuteOnGetArrayOfEnums(apiResponseLocalVar); + return apiResponseLocalVar; } } @@ -1414,6 +1595,8 @@ namespace Org.OpenAPITools.Api AfterTestBodyWithFileSchemaDefaultImplementation(apiResponseLocalVar, fileSchemaTestClass); + Events.ExecuteOnTestBodyWithFileSchema(apiResponseLocalVar); + return apiResponseLocalVar; } } @@ -1566,6 +1749,8 @@ namespace Org.OpenAPITools.Api AfterTestBodyWithQueryParamsDefaultImplementation(apiResponseLocalVar, user, query); + Events.ExecuteOnTestBodyWithQueryParams(apiResponseLocalVar); + return apiResponseLocalVar; } } @@ -1710,6 +1895,8 @@ namespace Org.OpenAPITools.Api AfterTestClientModelDefaultImplementation(apiResponseLocalVar, modelClient); + Events.ExecuteOnTestClientModel(apiResponseLocalVar); + return apiResponseLocalVar; } } @@ -1994,6 +2181,8 @@ namespace Org.OpenAPITools.Api AfterTestEndpointParametersDefaultImplementation(apiResponseLocalVar, varByte, number, varDouble, patternWithoutDelimiter, date, binary, varFloat, integer, int32, int64, varString, password, callback, dateTime); + Events.ExecuteOnTestEndpointParameters(apiResponseLocalVar); + if (apiResponseLocalVar.StatusCode == (HttpStatusCode) 429) foreach(TokenBase tokenBaseLocalVar in tokenBaseLocalVars) tokenBaseLocalVar.BeginRateLimit(); @@ -2226,6 +2415,8 @@ namespace Org.OpenAPITools.Api AfterTestEnumParametersDefaultImplementation(apiResponseLocalVar, enumHeaderStringArray, enumQueryStringArray, enumQueryDouble, enumQueryInteger, enumFormStringArray, enumHeaderString, enumQueryString, enumFormString); + Events.ExecuteOnTestEnumParameters(apiResponseLocalVar); + return apiResponseLocalVar; } } @@ -2391,6 +2582,8 @@ namespace Org.OpenAPITools.Api AfterTestGroupParametersDefaultImplementation(apiResponseLocalVar, requiredBooleanGroup, requiredStringGroup, requiredInt64Group, booleanGroup, stringGroup, int64Group); + Events.ExecuteOnTestGroupParameters(apiResponseLocalVar); + if (apiResponseLocalVar.StatusCode == (HttpStatusCode) 429) foreach(TokenBase tokenBaseLocalVar in tokenBaseLocalVars) tokenBaseLocalVar.BeginRateLimit(); @@ -2531,6 +2724,8 @@ namespace Org.OpenAPITools.Api AfterTestInlineAdditionalPropertiesDefaultImplementation(apiResponseLocalVar, requestBody); + Events.ExecuteOnTestInlineAdditionalProperties(apiResponseLocalVar); + return apiResponseLocalVar; } } @@ -2685,6 +2880,8 @@ namespace Org.OpenAPITools.Api AfterTestJsonFormDataDefaultImplementation(apiResponseLocalVar, param, param2); + Events.ExecuteOnTestJsonFormData(apiResponseLocalVar); + return apiResponseLocalVar; } } @@ -2897,6 +3094,8 @@ namespace Org.OpenAPITools.Api AfterTestQueryParameterCollectionFormatDefaultImplementation(apiResponseLocalVar, pipe, ioutil, http, url, context, requiredNotNullable, requiredNullable, notRequiredNotNullable, notRequiredNullable); + Events.ExecuteOnTestQueryParameterCollectionFormat(apiResponseLocalVar); + return apiResponseLocalVar; } } diff --git a/samples/client/petstore/csharp/OpenAPIClient-generichost-netstandard2.0/src/Org.OpenAPITools/Api/FakeClassnameTags123Api.cs b/samples/client/petstore/csharp/OpenAPIClient-generichost-netstandard2.0/src/Org.OpenAPITools/Api/FakeClassnameTags123Api.cs index 9cc4f4e8f24..a54c516d8a3 100644 --- a/samples/client/petstore/csharp/OpenAPIClient-generichost-netstandard2.0/src/Org.OpenAPITools/Api/FakeClassnameTags123Api.cs +++ b/samples/client/petstore/csharp/OpenAPIClient-generichost-netstandard2.0/src/Org.OpenAPITools/Api/FakeClassnameTags123Api.cs @@ -17,6 +17,7 @@ using System.Net.Http; using System.Net.Http.Headers; using System.Text.Json; using Org.OpenAPITools.Client; +using Org.OpenAPITools.Api; using Org.OpenAPITools.Model; namespace Org.OpenAPITools.IApi @@ -27,6 +28,11 @@ namespace Org.OpenAPITools.IApi /// public interface IFakeClassnameTags123Api : IApi { + /// + /// The class containing the events + /// + FakeClassnameTags123ApiEvents Events { get; } + /// /// To test class name in snake case /// @@ -54,6 +60,23 @@ namespace Org.OpenAPITools.IApi namespace Org.OpenAPITools.Api { + /// + /// Represents a collection of functions to interact with the API endpoints + /// This class is registered as transient. + /// + public class FakeClassnameTags123ApiEvents + { + /// + /// The event raised after the server response + /// + public event EventHandler> OnTestClassname; + + internal void ExecuteOnTestClassname(ApiResponse apiResponse) + { + OnTestClassname?.Invoke(this, new ApiResponseEventArgs(apiResponse)); + } + } + /// /// Represents a collection of functions to interact with the API endpoints /// @@ -71,6 +94,11 @@ namespace Org.OpenAPITools.Api /// public HttpClient HttpClient { get; } + /// + /// The class containing the events + /// + public FakeClassnameTags123ApiEvents Events { get; } + /// /// A token provider of type /// @@ -100,7 +128,7 @@ namespace Org.OpenAPITools.Api /// Initializes a new instance of the class. /// /// - public FakeClassnameTags123Api(ILogger logger, HttpClient httpClient, JsonSerializerOptionsProvider jsonSerializerOptionsProvider, + public FakeClassnameTags123Api(ILogger logger, HttpClient httpClient, JsonSerializerOptionsProvider jsonSerializerOptionsProvider, FakeClassnameTags123ApiEvents fakeClassnameTags123ApiEvents, TokenProvider apiKeyProvider, TokenProvider bearerTokenProvider, TokenProvider basicTokenProvider, @@ -110,6 +138,7 @@ namespace Org.OpenAPITools.Api _jsonSerializerOptions = jsonSerializerOptionsProvider.Options; Logger = logger; HttpClient = httpClient; + Events = fakeClassnameTags123ApiEvents; ApiKeyProvider = apiKeyProvider; BearerTokenProvider = bearerTokenProvider; BasicTokenProvider = basicTokenProvider; @@ -261,6 +290,8 @@ namespace Org.OpenAPITools.Api AfterTestClassnameDefaultImplementation(apiResponseLocalVar, modelClient); + Events.ExecuteOnTestClassname(apiResponseLocalVar); + if (apiResponseLocalVar.StatusCode == (HttpStatusCode) 429) foreach(TokenBase tokenBaseLocalVar in tokenBaseLocalVars) tokenBaseLocalVar.BeginRateLimit(); diff --git a/samples/client/petstore/csharp/OpenAPIClient-generichost-netstandard2.0/src/Org.OpenAPITools/Api/PetApi.cs b/samples/client/petstore/csharp/OpenAPIClient-generichost-netstandard2.0/src/Org.OpenAPITools/Api/PetApi.cs index 3f5d4b0467d..4c86dadaa50 100644 --- a/samples/client/petstore/csharp/OpenAPIClient-generichost-netstandard2.0/src/Org.OpenAPITools/Api/PetApi.cs +++ b/samples/client/petstore/csharp/OpenAPIClient-generichost-netstandard2.0/src/Org.OpenAPITools/Api/PetApi.cs @@ -17,6 +17,7 @@ using System.Net.Http; using System.Net.Http.Headers; using System.Text.Json; using Org.OpenAPITools.Client; +using Org.OpenAPITools.Api; using Org.OpenAPITools.Model; namespace Org.OpenAPITools.IApi @@ -27,6 +28,11 @@ namespace Org.OpenAPITools.IApi /// public interface IPetApi : IApi { + /// + /// The class containing the events + /// + PetApiEvents Events { get; } + /// /// Add a new pet to the store /// @@ -252,6 +258,103 @@ namespace Org.OpenAPITools.IApi namespace Org.OpenAPITools.Api { + /// + /// Represents a collection of functions to interact with the API endpoints + /// This class is registered as transient. + /// + public class PetApiEvents + { + /// + /// The event raised after the server response + /// + public event EventHandler> OnAddPet; + + internal void ExecuteOnAddPet(ApiResponse apiResponse) + { + OnAddPet?.Invoke(this, new ApiResponseEventArgs(apiResponse)); + } + + /// + /// The event raised after the server response + /// + public event EventHandler> OnDeletePet; + + internal void ExecuteOnDeletePet(ApiResponse apiResponse) + { + OnDeletePet?.Invoke(this, new ApiResponseEventArgs(apiResponse)); + } + + /// + /// The event raised after the server response + /// + public event EventHandler>> OnFindPetsByStatus; + + internal void ExecuteOnFindPetsByStatus(ApiResponse> apiResponse) + { + OnFindPetsByStatus?.Invoke(this, new ApiResponseEventArgs>(apiResponse)); + } + + /// + /// The event raised after the server response + /// + public event EventHandler>> OnFindPetsByTags; + + internal void ExecuteOnFindPetsByTags(ApiResponse> apiResponse) + { + OnFindPetsByTags?.Invoke(this, new ApiResponseEventArgs>(apiResponse)); + } + + /// + /// The event raised after the server response + /// + public event EventHandler> OnGetPetById; + + internal void ExecuteOnGetPetById(ApiResponse apiResponse) + { + OnGetPetById?.Invoke(this, new ApiResponseEventArgs(apiResponse)); + } + + /// + /// The event raised after the server response + /// + public event EventHandler> OnUpdatePet; + + internal void ExecuteOnUpdatePet(ApiResponse apiResponse) + { + OnUpdatePet?.Invoke(this, new ApiResponseEventArgs(apiResponse)); + } + + /// + /// The event raised after the server response + /// + public event EventHandler> OnUpdatePetWithForm; + + internal void ExecuteOnUpdatePetWithForm(ApiResponse apiResponse) + { + OnUpdatePetWithForm?.Invoke(this, new ApiResponseEventArgs(apiResponse)); + } + + /// + /// The event raised after the server response + /// + public event EventHandler> OnUploadFile; + + internal void ExecuteOnUploadFile(ApiResponse apiResponse) + { + OnUploadFile?.Invoke(this, new ApiResponseEventArgs(apiResponse)); + } + + /// + /// The event raised after the server response + /// + public event EventHandler> OnUploadFileWithRequiredFile; + + internal void ExecuteOnUploadFileWithRequiredFile(ApiResponse apiResponse) + { + OnUploadFileWithRequiredFile?.Invoke(this, new ApiResponseEventArgs(apiResponse)); + } + } + /// /// Represents a collection of functions to interact with the API endpoints /// @@ -269,6 +372,11 @@ namespace Org.OpenAPITools.Api /// public HttpClient HttpClient { get; } + /// + /// The class containing the events + /// + public PetApiEvents Events { get; } + /// /// A token provider of type /// @@ -298,7 +406,7 @@ namespace Org.OpenAPITools.Api /// Initializes a new instance of the class. /// /// - public PetApi(ILogger logger, HttpClient httpClient, JsonSerializerOptionsProvider jsonSerializerOptionsProvider, + public PetApi(ILogger logger, HttpClient httpClient, JsonSerializerOptionsProvider jsonSerializerOptionsProvider, PetApiEvents petApiEvents, TokenProvider apiKeyProvider, TokenProvider bearerTokenProvider, TokenProvider basicTokenProvider, @@ -308,6 +416,7 @@ namespace Org.OpenAPITools.Api _jsonSerializerOptions = jsonSerializerOptionsProvider.Options; Logger = logger; HttpClient = httpClient; + Events = petApiEvents; ApiKeyProvider = apiKeyProvider; BearerTokenProvider = bearerTokenProvider; BasicTokenProvider = basicTokenProvider; @@ -459,6 +568,8 @@ namespace Org.OpenAPITools.Api AfterAddPetDefaultImplementation(apiResponseLocalVar, pet); + Events.ExecuteOnAddPet(apiResponseLocalVar); + if (apiResponseLocalVar.StatusCode == (HttpStatusCode) 429) foreach(TokenBase tokenBaseLocalVar in tokenBaseLocalVars) tokenBaseLocalVar.BeginRateLimit(); @@ -607,6 +718,8 @@ namespace Org.OpenAPITools.Api AfterDeletePetDefaultImplementation(apiResponseLocalVar, petId, apiKey); + Events.ExecuteOnDeletePet(apiResponseLocalVar); + if (apiResponseLocalVar.StatusCode == (HttpStatusCode) 429) foreach(TokenBase tokenBaseLocalVar in tokenBaseLocalVars) tokenBaseLocalVar.BeginRateLimit(); @@ -767,6 +880,8 @@ namespace Org.OpenAPITools.Api AfterFindPetsByStatusDefaultImplementation(apiResponseLocalVar, status); + Events.ExecuteOnFindPetsByStatus(apiResponseLocalVar); + if (apiResponseLocalVar.StatusCode == (HttpStatusCode) 429) foreach(TokenBase tokenBaseLocalVar in tokenBaseLocalVars) tokenBaseLocalVar.BeginRateLimit(); @@ -931,6 +1046,8 @@ namespace Org.OpenAPITools.Api AfterFindPetsByTagsDefaultImplementation(apiResponseLocalVar, tags); + Events.ExecuteOnFindPetsByTags(apiResponseLocalVar); + if (apiResponseLocalVar.StatusCode == (HttpStatusCode) 429) foreach(TokenBase tokenBaseLocalVar in tokenBaseLocalVars) tokenBaseLocalVar.BeginRateLimit(); @@ -1067,6 +1184,8 @@ namespace Org.OpenAPITools.Api AfterGetPetByIdDefaultImplementation(apiResponseLocalVar, petId); + Events.ExecuteOnGetPetById(apiResponseLocalVar); + if (apiResponseLocalVar.StatusCode == (HttpStatusCode) 429) foreach(TokenBase tokenBaseLocalVar in tokenBaseLocalVars) tokenBaseLocalVar.BeginRateLimit(); @@ -1226,6 +1345,8 @@ namespace Org.OpenAPITools.Api AfterUpdatePetDefaultImplementation(apiResponseLocalVar, pet); + Events.ExecuteOnUpdatePet(apiResponseLocalVar); + if (apiResponseLocalVar.StatusCode == (HttpStatusCode) 429) foreach(TokenBase tokenBaseLocalVar in tokenBaseLocalVars) tokenBaseLocalVar.BeginRateLimit(); @@ -1403,6 +1524,8 @@ namespace Org.OpenAPITools.Api AfterUpdatePetWithFormDefaultImplementation(apiResponseLocalVar, petId, name, status); + Events.ExecuteOnUpdatePetWithForm(apiResponseLocalVar); + if (apiResponseLocalVar.StatusCode == (HttpStatusCode) 429) foreach(TokenBase tokenBaseLocalVar in tokenBaseLocalVars) tokenBaseLocalVar.BeginRateLimit(); @@ -1584,6 +1707,8 @@ namespace Org.OpenAPITools.Api AfterUploadFileDefaultImplementation(apiResponseLocalVar, petId, file, additionalMetadata); + Events.ExecuteOnUploadFile(apiResponseLocalVar); + if (apiResponseLocalVar.StatusCode == (HttpStatusCode) 429) foreach(TokenBase tokenBaseLocalVar in tokenBaseLocalVars) tokenBaseLocalVar.BeginRateLimit(); @@ -1765,6 +1890,8 @@ namespace Org.OpenAPITools.Api AfterUploadFileWithRequiredFileDefaultImplementation(apiResponseLocalVar, requiredFile, petId, additionalMetadata); + Events.ExecuteOnUploadFileWithRequiredFile(apiResponseLocalVar); + if (apiResponseLocalVar.StatusCode == (HttpStatusCode) 429) foreach(TokenBase tokenBaseLocalVar in tokenBaseLocalVars) tokenBaseLocalVar.BeginRateLimit(); diff --git a/samples/client/petstore/csharp/OpenAPIClient-generichost-netstandard2.0/src/Org.OpenAPITools/Api/StoreApi.cs b/samples/client/petstore/csharp/OpenAPIClient-generichost-netstandard2.0/src/Org.OpenAPITools/Api/StoreApi.cs index 6f62f4818fb..8ab50aff5ea 100644 --- a/samples/client/petstore/csharp/OpenAPIClient-generichost-netstandard2.0/src/Org.OpenAPITools/Api/StoreApi.cs +++ b/samples/client/petstore/csharp/OpenAPIClient-generichost-netstandard2.0/src/Org.OpenAPITools/Api/StoreApi.cs @@ -17,6 +17,7 @@ using System.Net.Http; using System.Net.Http.Headers; using System.Text.Json; using Org.OpenAPITools.Client; +using Org.OpenAPITools.Api; using Org.OpenAPITools.Model; namespace Org.OpenAPITools.IApi @@ -27,6 +28,11 @@ namespace Org.OpenAPITools.IApi /// public interface IStoreApi : IApi { + /// + /// The class containing the events + /// + StoreApiEvents Events { get; } + /// /// Delete purchase order by ID /// @@ -121,6 +127,53 @@ namespace Org.OpenAPITools.IApi namespace Org.OpenAPITools.Api { + /// + /// Represents a collection of functions to interact with the API endpoints + /// This class is registered as transient. + /// + public class StoreApiEvents + { + /// + /// The event raised after the server response + /// + public event EventHandler> OnDeleteOrder; + + internal void ExecuteOnDeleteOrder(ApiResponse apiResponse) + { + OnDeleteOrder?.Invoke(this, new ApiResponseEventArgs(apiResponse)); + } + + /// + /// The event raised after the server response + /// + public event EventHandler>> OnGetInventory; + + internal void ExecuteOnGetInventory(ApiResponse> apiResponse) + { + OnGetInventory?.Invoke(this, new ApiResponseEventArgs>(apiResponse)); + } + + /// + /// The event raised after the server response + /// + public event EventHandler> OnGetOrderById; + + internal void ExecuteOnGetOrderById(ApiResponse apiResponse) + { + OnGetOrderById?.Invoke(this, new ApiResponseEventArgs(apiResponse)); + } + + /// + /// The event raised after the server response + /// + public event EventHandler> OnPlaceOrder; + + internal void ExecuteOnPlaceOrder(ApiResponse apiResponse) + { + OnPlaceOrder?.Invoke(this, new ApiResponseEventArgs(apiResponse)); + } + } + /// /// Represents a collection of functions to interact with the API endpoints /// @@ -138,6 +191,11 @@ namespace Org.OpenAPITools.Api /// public HttpClient HttpClient { get; } + /// + /// The class containing the events + /// + public StoreApiEvents Events { get; } + /// /// A token provider of type /// @@ -167,7 +225,7 @@ namespace Org.OpenAPITools.Api /// Initializes a new instance of the class. /// /// - public StoreApi(ILogger logger, HttpClient httpClient, JsonSerializerOptionsProvider jsonSerializerOptionsProvider, + public StoreApi(ILogger logger, HttpClient httpClient, JsonSerializerOptionsProvider jsonSerializerOptionsProvider, StoreApiEvents storeApiEvents, TokenProvider apiKeyProvider, TokenProvider bearerTokenProvider, TokenProvider basicTokenProvider, @@ -177,6 +235,7 @@ namespace Org.OpenAPITools.Api _jsonSerializerOptions = jsonSerializerOptionsProvider.Options; Logger = logger; HttpClient = httpClient; + Events = storeApiEvents; ApiKeyProvider = apiKeyProvider; BearerTokenProvider = bearerTokenProvider; BasicTokenProvider = basicTokenProvider; @@ -296,6 +355,8 @@ namespace Org.OpenAPITools.Api AfterDeleteOrderDefaultImplementation(apiResponseLocalVar, orderId); + Events.ExecuteOnDeleteOrder(apiResponseLocalVar); + return apiResponseLocalVar; } } @@ -412,6 +473,8 @@ namespace Org.OpenAPITools.Api AfterGetInventoryDefaultImplementation(apiResponseLocalVar); + Events.ExecuteOnGetInventory(apiResponseLocalVar); + if (apiResponseLocalVar.StatusCode == (HttpStatusCode) 429) foreach(TokenBase tokenBaseLocalVar in tokenBaseLocalVars) tokenBaseLocalVar.BeginRateLimit(); @@ -536,6 +599,8 @@ namespace Org.OpenAPITools.Api AfterGetOrderByIdDefaultImplementation(apiResponseLocalVar, orderId); + Events.ExecuteOnGetOrderById(apiResponseLocalVar); + return apiResponseLocalVar; } } @@ -681,6 +746,8 @@ namespace Org.OpenAPITools.Api AfterPlaceOrderDefaultImplementation(apiResponseLocalVar, order); + Events.ExecuteOnPlaceOrder(apiResponseLocalVar); + return apiResponseLocalVar; } } diff --git a/samples/client/petstore/csharp/OpenAPIClient-generichost-netstandard2.0/src/Org.OpenAPITools/Api/UserApi.cs b/samples/client/petstore/csharp/OpenAPIClient-generichost-netstandard2.0/src/Org.OpenAPITools/Api/UserApi.cs index 86d0c81dd43..e897250f4ad 100644 --- a/samples/client/petstore/csharp/OpenAPIClient-generichost-netstandard2.0/src/Org.OpenAPITools/Api/UserApi.cs +++ b/samples/client/petstore/csharp/OpenAPIClient-generichost-netstandard2.0/src/Org.OpenAPITools/Api/UserApi.cs @@ -17,6 +17,7 @@ using System.Net.Http; using System.Net.Http.Headers; using System.Text.Json; using Org.OpenAPITools.Client; +using Org.OpenAPITools.Api; using Org.OpenAPITools.Model; namespace Org.OpenAPITools.IApi @@ -27,6 +28,11 @@ namespace Org.OpenAPITools.IApi /// public interface IUserApi : IApi { + /// + /// The class containing the events + /// + UserApiEvents Events { get; } + /// /// Create user /// @@ -217,6 +223,93 @@ namespace Org.OpenAPITools.IApi namespace Org.OpenAPITools.Api { + /// + /// Represents a collection of functions to interact with the API endpoints + /// This class is registered as transient. + /// + public class UserApiEvents + { + /// + /// The event raised after the server response + /// + public event EventHandler> OnCreateUser; + + internal void ExecuteOnCreateUser(ApiResponse apiResponse) + { + OnCreateUser?.Invoke(this, new ApiResponseEventArgs(apiResponse)); + } + + /// + /// The event raised after the server response + /// + public event EventHandler> OnCreateUsersWithArrayInput; + + internal void ExecuteOnCreateUsersWithArrayInput(ApiResponse apiResponse) + { + OnCreateUsersWithArrayInput?.Invoke(this, new ApiResponseEventArgs(apiResponse)); + } + + /// + /// The event raised after the server response + /// + public event EventHandler> OnCreateUsersWithListInput; + + internal void ExecuteOnCreateUsersWithListInput(ApiResponse apiResponse) + { + OnCreateUsersWithListInput?.Invoke(this, new ApiResponseEventArgs(apiResponse)); + } + + /// + /// The event raised after the server response + /// + public event EventHandler> OnDeleteUser; + + internal void ExecuteOnDeleteUser(ApiResponse apiResponse) + { + OnDeleteUser?.Invoke(this, new ApiResponseEventArgs(apiResponse)); + } + + /// + /// The event raised after the server response + /// + public event EventHandler> OnGetUserByName; + + internal void ExecuteOnGetUserByName(ApiResponse apiResponse) + { + OnGetUserByName?.Invoke(this, new ApiResponseEventArgs(apiResponse)); + } + + /// + /// The event raised after the server response + /// + public event EventHandler> OnLoginUser; + + internal void ExecuteOnLoginUser(ApiResponse apiResponse) + { + OnLoginUser?.Invoke(this, new ApiResponseEventArgs(apiResponse)); + } + + /// + /// The event raised after the server response + /// + public event EventHandler> OnLogoutUser; + + internal void ExecuteOnLogoutUser(ApiResponse apiResponse) + { + OnLogoutUser?.Invoke(this, new ApiResponseEventArgs(apiResponse)); + } + + /// + /// The event raised after the server response + /// + public event EventHandler> OnUpdateUser; + + internal void ExecuteOnUpdateUser(ApiResponse apiResponse) + { + OnUpdateUser?.Invoke(this, new ApiResponseEventArgs(apiResponse)); + } + } + /// /// Represents a collection of functions to interact with the API endpoints /// @@ -234,6 +327,11 @@ namespace Org.OpenAPITools.Api /// public HttpClient HttpClient { get; } + /// + /// The class containing the events + /// + public UserApiEvents Events { get; } + /// /// A token provider of type /// @@ -263,7 +361,7 @@ namespace Org.OpenAPITools.Api /// Initializes a new instance of the class. /// /// - public UserApi(ILogger logger, HttpClient httpClient, JsonSerializerOptionsProvider jsonSerializerOptionsProvider, + public UserApi(ILogger logger, HttpClient httpClient, JsonSerializerOptionsProvider jsonSerializerOptionsProvider, UserApiEvents userApiEvents, TokenProvider apiKeyProvider, TokenProvider bearerTokenProvider, TokenProvider basicTokenProvider, @@ -273,6 +371,7 @@ namespace Org.OpenAPITools.Api _jsonSerializerOptions = jsonSerializerOptionsProvider.Options; Logger = logger; HttpClient = httpClient; + Events = userApiEvents; ApiKeyProvider = apiKeyProvider; BearerTokenProvider = bearerTokenProvider; BasicTokenProvider = basicTokenProvider; @@ -405,6 +504,8 @@ namespace Org.OpenAPITools.Api AfterCreateUserDefaultImplementation(apiResponseLocalVar, user); + Events.ExecuteOnCreateUser(apiResponseLocalVar); + return apiResponseLocalVar; } } @@ -541,6 +642,8 @@ namespace Org.OpenAPITools.Api AfterCreateUsersWithArrayInputDefaultImplementation(apiResponseLocalVar, user); + Events.ExecuteOnCreateUsersWithArrayInput(apiResponseLocalVar); + return apiResponseLocalVar; } } @@ -677,6 +780,8 @@ namespace Org.OpenAPITools.Api AfterCreateUsersWithListInputDefaultImplementation(apiResponseLocalVar, user); + Events.ExecuteOnCreateUsersWithListInput(apiResponseLocalVar); + return apiResponseLocalVar; } } @@ -800,6 +905,8 @@ namespace Org.OpenAPITools.Api AfterDeleteUserDefaultImplementation(apiResponseLocalVar, username); + Events.ExecuteOnDeleteUser(apiResponseLocalVar); + return apiResponseLocalVar; } } @@ -933,6 +1040,8 @@ namespace Org.OpenAPITools.Api AfterGetUserByNameDefaultImplementation(apiResponseLocalVar, username); + Events.ExecuteOnGetUserByName(apiResponseLocalVar); + return apiResponseLocalVar; } } @@ -1082,6 +1191,8 @@ namespace Org.OpenAPITools.Api AfterLoginUserDefaultImplementation(apiResponseLocalVar, username, password); + Events.ExecuteOnLoginUser(apiResponseLocalVar); + return apiResponseLocalVar; } } @@ -1181,6 +1292,8 @@ namespace Org.OpenAPITools.Api AfterLogoutUserDefaultImplementation(apiResponseLocalVar); + Events.ExecuteOnLogoutUser(apiResponseLocalVar); + return apiResponseLocalVar; } } @@ -1328,6 +1441,8 @@ namespace Org.OpenAPITools.Api AfterUpdateUserDefaultImplementation(apiResponseLocalVar, user, username); + Events.ExecuteOnUpdateUser(apiResponseLocalVar); + return apiResponseLocalVar; } } diff --git a/samples/client/petstore/csharp/OpenAPIClient-generichost-netstandard2.0/src/Org.OpenAPITools/Client/ApiResponseEventArgs.cs b/samples/client/petstore/csharp/OpenAPIClient-generichost-netstandard2.0/src/Org.OpenAPITools/Client/ApiResponseEventArgs.cs index f87e53e8b04..28d50d6378f 100644 --- a/samples/client/petstore/csharp/OpenAPIClient-generichost-netstandard2.0/src/Org.OpenAPITools/Client/ApiResponseEventArgs.cs +++ b/samples/client/petstore/csharp/OpenAPIClient-generichost-netstandard2.0/src/Org.OpenAPITools/Client/ApiResponseEventArgs.cs @@ -1,58 +1,24 @@ using System; -using System.Net; namespace Org.OpenAPITools.Client { /// - /// Useful for tracking server health. + /// Useful for tracking server health /// - public class ApiResponseEventArgs : EventArgs + public class ApiResponseEventArgs : EventArgs { /// - /// The time the request was sent. + /// The ApiResponse /// - public DateTime RequestedAt { get; } + public ApiResponse ApiResponse { get; } /// - /// The time the response was received. + /// The ApiResponseEventArgs /// - public DateTime ReceivedAt { get; } - - /// - /// The HttpStatusCode received. - /// - public HttpStatusCode HttpStatus { get; } - - /// - /// The path requested. - /// - public string PathFormat { get; } - - /// - /// The elapsed time from request to response. - /// - public TimeSpan ToTimeSpan => this.ReceivedAt - this.RequestedAt; - - /// - /// The path - /// - public string Path { get; } - - /// - /// The event args used to track server health. - /// - /// - /// - /// - /// - /// - public ApiResponseEventArgs(DateTime requestedAt, DateTime receivedAt, HttpStatusCode httpStatus, string pathFormat, string path) + /// + public ApiResponseEventArgs(ApiResponse apiResponse) { - RequestedAt = requestedAt; - ReceivedAt = receivedAt; - HttpStatus = httpStatus; - PathFormat = pathFormat; - Path = path; + ApiResponse = apiResponse; } } } diff --git a/samples/client/petstore/csharp/OpenAPIClient-generichost-netstandard2.0/src/Org.OpenAPITools/Client/HostConfiguration.cs b/samples/client/petstore/csharp/OpenAPIClient-generichost-netstandard2.0/src/Org.OpenAPITools/Client/HostConfiguration.cs index b80c081a3d0..8d01435c285 100644 --- a/samples/client/petstore/csharp/OpenAPIClient-generichost-netstandard2.0/src/Org.OpenAPITools/Client/HostConfiguration.cs +++ b/samples/client/petstore/csharp/OpenAPIClient-generichost-netstandard2.0/src/Org.OpenAPITools/Client/HostConfiguration.cs @@ -132,12 +132,19 @@ namespace Org.OpenAPITools.Client _jsonOptions.Converters.Add(new ZeroBasedEnumClassJsonConverter()); _services.AddSingleton(new JsonSerializerOptionsProvider(_jsonOptions)); _services.AddSingleton(); + _services.AddSingleton(); _services.AddTransient(); + _services.AddSingleton(); _services.AddTransient(); + _services.AddSingleton(); _services.AddTransient(); + _services.AddSingleton(); _services.AddTransient(); + _services.AddSingleton(); _services.AddTransient(); + _services.AddSingleton(); _services.AddTransient(); + _services.AddSingleton(); _services.AddTransient(); }