diff --git a/README.md b/README.md
index ac5ad543..012d4683 100644
--- a/README.md
+++ b/README.md
@@ -105,6 +105,10 @@ npm run webdriver:start
# in another terminal
npm run e2e:live
```
+### run client api definition generation
+```bash
+npm run build:apiDef
+```
# Azure Deploy
* You can set an environment variable for azure app deployment password
Set-Item -path env:AzureAppPass -value passwordhere
diff --git a/src/AspNetCoreSpa.Web/ClientApp/package.json b/src/AspNetCoreSpa.Web/ClientApp/package.json
index 5a2344e6..9cd00b01 100644
--- a/src/AspNetCoreSpa.Web/ClientApp/package.json
+++ b/src/AspNetCoreSpa.Web/ClientApp/package.json
@@ -18,6 +18,7 @@
"start": "ng serve",
"build": "ng build --prod",
"build:ssr": "npm run build --project=ssr",
+ "build:apiDef": "nswag run ../NSwagGenerator.nswag /runtime:NetCore21",
"lint": "ng lint",
"e2e": "ng e2e",
"test": "jest",
@@ -65,7 +66,8 @@
"ts-node": "7.0.0",
"tslint": "5.11.0",
"typescript": "2.9.2",
- "webpack-bundle-analyzer": "2.13.1"
+ "webpack-bundle-analyzer": "2.13.1",
+ "nswag": "11.18.1"
},
"jest": {
"preset": "jest-preset-angular",
@@ -78,4 +80,4 @@
}
},
"license": "MIT"
-}
+}
\ No newline at end of file
diff --git a/src/AspNetCoreSpa.Web/ClientApp/src/apiDefinitions.ts b/src/AspNetCoreSpa.Web/ClientApp/src/apiDefinitions.ts
new file mode 100644
index 00000000..f590aad7
--- /dev/null
+++ b/src/AspNetCoreSpa.Web/ClientApp/src/apiDefinitions.ts
@@ -0,0 +1,2642 @@
+/* tslint:disable */
+//----------------------
+//
+// Generated using the NSwag toolchain v11.18.1.0 (NJsonSchema v9.10.66.0 (Newtonsoft.Json v9.0.0.0)) (http://NSwag.org)
+//
+//----------------------
+// ReSharper disable InconsistentNaming
+
+import { mergeMap as _observableMergeMap, catchError as _observableCatch } from 'rxjs/operators';
+import { Observable, throwError as _observableThrow, of as _observableOf } from 'rxjs';
+import { Injectable, Inject, Optional, InjectionToken } from '@angular/core';
+import { HttpClient, HttpHeaders, HttpResponse, HttpResponseBase } from '@angular/common/http';
+
+export const API_BASE_URL = new InjectionToken('API_BASE_URL');
+
+@Injectable({
+ providedIn: 'root'
+})
+export class HomeClient {
+ private http: HttpClient;
+ private baseUrl: string;
+ protected jsonParseReviver: ((key: string, value: any) => any) | undefined = undefined;
+
+ constructor(@Inject(HttpClient) http: HttpClient, @Optional() @Inject(API_BASE_URL) baseUrl?: string) {
+ this.http = http;
+ this.baseUrl = baseUrl ? baseUrl : "";
+ }
+
+ setLanguage(culture: string | null): Observable {
+ let url_ = this.baseUrl + "/api/setlanguage?";
+ if (culture === undefined)
+ throw new Error("The parameter 'culture' must be defined.");
+ else
+ url_ += "culture=" + encodeURIComponent("" + culture) + "&";
+ url_ = url_.replace(/[?&]$/, "");
+
+ let options_ : any = {
+ observe: "response",
+ responseType: "blob",
+ headers: new HttpHeaders({
+ "Content-Type": "application/json",
+ "Accept": "application/json"
+ })
+ };
+
+ return this.http.request("post", url_, options_).pipe(_observableMergeMap((response_ : any) => {
+ return this.processSetLanguage(response_);
+ })).pipe(_observableCatch((response_: any) => {
+ if (response_ instanceof HttpResponseBase) {
+ try {
+ return this.processSetLanguage(response_);
+ } catch (e) {
+ return >_observableThrow(e);
+ }
+ } else
+ return >_observableThrow(response_);
+ }));
+ }
+
+ protected processSetLanguage(response: HttpResponseBase): Observable {
+ const status = response.status;
+ const responseBlob =
+ response instanceof HttpResponse ? response.body :
+ (response).error instanceof Blob ? (response).error : undefined;
+
+ let _headers: any = {}; if (response.headers) { for (let key of response.headers.keys()) { _headers[key] = response.headers.get(key); }};
+ if (status === 200 || status === 206) {
+ const contentDisposition = response.headers ? response.headers.get("content-disposition") : undefined;
+ const fileNameMatch = contentDisposition ? /filename="?([^"]*?)"?(;|$)/g.exec(contentDisposition) : undefined;
+ const fileName = fileNameMatch && fileNameMatch.length > 1 ? fileNameMatch[1] : undefined;
+ return _observableOf({ fileName: fileName, data: responseBlob, status: status, headers: _headers });
+ } else if (status !== 200 && status !== 204) {
+ return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {
+ return throwException("An unexpected server error occurred.", status, _responseText, _headers);
+ }));
+ }
+ return _observableOf(null);
+ }
+
+ get(): Observable {
+ let url_ = this.baseUrl + "/api/applicationdata";
+ url_ = url_.replace(/[?&]$/, "");
+
+ let options_ : any = {
+ observe: "response",
+ responseType: "blob",
+ headers: new HttpHeaders({
+ "Content-Type": "application/json",
+ "Accept": "application/json"
+ })
+ };
+
+ return this.http.request("get", url_, options_).pipe(_observableMergeMap((response_ : any) => {
+ return this.processGet(response_);
+ })).pipe(_observableCatch((response_: any) => {
+ if (response_ instanceof HttpResponseBase) {
+ try {
+ return this.processGet(response_);
+ } catch (e) {
+ return >_observableThrow(e);
+ }
+ } else
+ return >_observableThrow(response_);
+ }));
+ }
+
+ protected processGet(response: HttpResponseBase): Observable {
+ const status = response.status;
+ const responseBlob =
+ response instanceof HttpResponse ? response.body :
+ (response).error instanceof Blob ? (response).error : undefined;
+
+ let _headers: any = {}; if (response.headers) { for (let key of response.headers.keys()) { _headers[key] = response.headers.get(key); }};
+ if (status === 200 || status === 206) {
+ const contentDisposition = response.headers ? response.headers.get("content-disposition") : undefined;
+ const fileNameMatch = contentDisposition ? /filename="?([^"]*?)"?(;|$)/g.exec(contentDisposition) : undefined;
+ const fileName = fileNameMatch && fileNameMatch.length > 1 ? fileNameMatch[1] : undefined;
+ return _observableOf({ fileName: fileName, data: responseBlob, status: status, headers: _headers });
+ } else if (status !== 200 && status !== 204) {
+ return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {
+ return throwException("An unexpected server error occurred.", status, _responseText, _headers);
+ }));
+ }
+ return _observableOf(null);
+ }
+}
+
+@Injectable({
+ providedIn: 'root'
+})
+export class AccountClient {
+ private http: HttpClient;
+ private baseUrl: string;
+ protected jsonParseReviver: ((key: string, value: any) => any) | undefined = undefined;
+
+ constructor(@Inject(HttpClient) http: HttpClient, @Optional() @Inject(API_BASE_URL) baseUrl?: string) {
+ this.http = http;
+ this.baseUrl = baseUrl ? baseUrl : "";
+ }
+
+ login(model: LoginViewModel | null): Observable {
+ let url_ = this.baseUrl + "/api/Account/login";
+ url_ = url_.replace(/[?&]$/, "");
+
+ const content_ = JSON.stringify(model);
+
+ let options_ : any = {
+ body: content_,
+ observe: "response",
+ responseType: "blob",
+ headers: new HttpHeaders({
+ "Content-Type": "application/json",
+ "Accept": "application/json"
+ })
+ };
+
+ return this.http.request("post", url_, options_).pipe(_observableMergeMap((response_ : any) => {
+ return this.processLogin(response_);
+ })).pipe(_observableCatch((response_: any) => {
+ if (response_ instanceof HttpResponseBase) {
+ try {
+ return this.processLogin(response_);
+ } catch (e) {
+ return >_observableThrow(e);
+ }
+ } else
+ return >_observableThrow(response_);
+ }));
+ }
+
+ protected processLogin(response: HttpResponseBase): Observable {
+ const status = response.status;
+ const responseBlob =
+ response instanceof HttpResponse ? response.body :
+ (response).error instanceof Blob ? (response).error : undefined;
+
+ let _headers: any = {}; if (response.headers) { for (let key of response.headers.keys()) { _headers[key] = response.headers.get(key); }};
+ if (status === 200 || status === 206) {
+ const contentDisposition = response.headers ? response.headers.get("content-disposition") : undefined;
+ const fileNameMatch = contentDisposition ? /filename="?([^"]*?)"?(;|$)/g.exec(contentDisposition) : undefined;
+ const fileName = fileNameMatch && fileNameMatch.length > 1 ? fileNameMatch[1] : undefined;
+ return _observableOf({ fileName: fileName, data: responseBlob, status: status, headers: _headers });
+ } else if (status !== 200 && status !== 204) {
+ return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {
+ return throwException("An unexpected server error occurred.", status, _responseText, _headers);
+ }));
+ }
+ return _observableOf(null);
+ }
+
+ register(model: RegisterViewModel | null, returnUrl: string | null | undefined): Observable {
+ let url_ = this.baseUrl + "/api/Account/register?";
+ if (returnUrl !== undefined)
+ url_ += "returnUrl=" + encodeURIComponent("" + returnUrl) + "&";
+ url_ = url_.replace(/[?&]$/, "");
+
+ const content_ = JSON.stringify(model);
+
+ let options_ : any = {
+ body: content_,
+ observe: "response",
+ responseType: "blob",
+ headers: new HttpHeaders({
+ "Content-Type": "application/json",
+ "Accept": "application/json"
+ })
+ };
+
+ return this.http.request("post", url_, options_).pipe(_observableMergeMap((response_ : any) => {
+ return this.processRegister(response_);
+ })).pipe(_observableCatch((response_: any) => {
+ if (response_ instanceof HttpResponseBase) {
+ try {
+ return this.processRegister(response_);
+ } catch (e) {
+ return >_observableThrow(e);
+ }
+ } else
+ return >_observableThrow(response_);
+ }));
+ }
+
+ protected processRegister(response: HttpResponseBase): Observable {
+ const status = response.status;
+ const responseBlob =
+ response instanceof HttpResponse ? response.body :
+ (response).error instanceof Blob ? (response).error : undefined;
+
+ let _headers: any = {}; if (response.headers) { for (let key of response.headers.keys()) { _headers[key] = response.headers.get(key); }};
+ if (status === 200 || status === 206) {
+ const contentDisposition = response.headers ? response.headers.get("content-disposition") : undefined;
+ const fileNameMatch = contentDisposition ? /filename="?([^"]*?)"?(;|$)/g.exec(contentDisposition) : undefined;
+ const fileName = fileNameMatch && fileNameMatch.length > 1 ? fileNameMatch[1] : undefined;
+ return _observableOf({ fileName: fileName, data: responseBlob, status: status, headers: _headers });
+ } else if (status !== 200 && status !== 204) {
+ return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {
+ return throwException("An unexpected server error occurred.", status, _responseText, _headers);
+ }));
+ }
+ return _observableOf(null);
+ }
+
+ confirmEmail(userId: string | null, code: string | null): Observable {
+ let url_ = this.baseUrl + "/api/Account/ConfirmEmail?";
+ if (userId === undefined)
+ throw new Error("The parameter 'userId' must be defined.");
+ else
+ url_ += "userId=" + encodeURIComponent("" + userId) + "&";
+ if (code === undefined)
+ throw new Error("The parameter 'code' must be defined.");
+ else
+ url_ += "code=" + encodeURIComponent("" + code) + "&";
+ url_ = url_.replace(/[?&]$/, "");
+
+ let options_ : any = {
+ observe: "response",
+ responseType: "blob",
+ headers: new HttpHeaders({
+ "Content-Type": "application/json",
+ "Accept": "application/json"
+ })
+ };
+
+ return this.http.request("get", url_, options_).pipe(_observableMergeMap((response_ : any) => {
+ return this.processConfirmEmail(response_);
+ })).pipe(_observableCatch((response_: any) => {
+ if (response_ instanceof HttpResponseBase) {
+ try {
+ return this.processConfirmEmail(response_);
+ } catch (e) {
+ return >_observableThrow(e);
+ }
+ } else
+ return >_observableThrow(response_);
+ }));
+ }
+
+ protected processConfirmEmail(response: HttpResponseBase): Observable {
+ const status = response.status;
+ const responseBlob =
+ response instanceof HttpResponse ? response.body :
+ (response).error instanceof Blob ? (response).error : undefined;
+
+ let _headers: any = {}; if (response.headers) { for (let key of response.headers.keys()) { _headers[key] = response.headers.get(key); }};
+ if (status === 200 || status === 206) {
+ const contentDisposition = response.headers ? response.headers.get("content-disposition") : undefined;
+ const fileNameMatch = contentDisposition ? /filename="?([^"]*?)"?(;|$)/g.exec(contentDisposition) : undefined;
+ const fileName = fileNameMatch && fileNameMatch.length > 1 ? fileNameMatch[1] : undefined;
+ return _observableOf({ fileName: fileName, data: responseBlob, status: status, headers: _headers });
+ } else if (status !== 200 && status !== 204) {
+ return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {
+ return throwException("An unexpected server error occurred.", status, _responseText, _headers);
+ }));
+ }
+ return _observableOf(null);
+ }
+
+ forgotPassword(model: ForgotPasswordViewModel | null): Observable {
+ let url_ = this.baseUrl + "/api/Account/ForgotPassword";
+ url_ = url_.replace(/[?&]$/, "");
+
+ const content_ = JSON.stringify(model);
+
+ let options_ : any = {
+ body: content_,
+ observe: "response",
+ responseType: "blob",
+ headers: new HttpHeaders({
+ "Content-Type": "application/json",
+ "Accept": "application/json"
+ })
+ };
+
+ return this.http.request("post", url_, options_).pipe(_observableMergeMap((response_ : any) => {
+ return this.processForgotPassword(response_);
+ })).pipe(_observableCatch((response_: any) => {
+ if (response_ instanceof HttpResponseBase) {
+ try {
+ return this.processForgotPassword(response_);
+ } catch (e) {
+ return >_observableThrow(e);
+ }
+ } else
+ return >_observableThrow(response_);
+ }));
+ }
+
+ protected processForgotPassword(response: HttpResponseBase): Observable {
+ const status = response.status;
+ const responseBlob =
+ response instanceof HttpResponse ? response.body :
+ (response).error instanceof Blob ? (response).error : undefined;
+
+ let _headers: any = {}; if (response.headers) { for (let key of response.headers.keys()) { _headers[key] = response.headers.get(key); }};
+ if (status === 200 || status === 206) {
+ const contentDisposition = response.headers ? response.headers.get("content-disposition") : undefined;
+ const fileNameMatch = contentDisposition ? /filename="?([^"]*?)"?(;|$)/g.exec(contentDisposition) : undefined;
+ const fileName = fileNameMatch && fileNameMatch.length > 1 ? fileNameMatch[1] : undefined;
+ return _observableOf({ fileName: fileName, data: responseBlob, status: status, headers: _headers });
+ } else if (status !== 200 && status !== 204) {
+ return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {
+ return throwException("An unexpected server error occurred.", status, _responseText, _headers);
+ }));
+ }
+ return _observableOf(null);
+ }
+
+ resetPassword(model: ResetPasswordViewModel | null): Observable {
+ let url_ = this.baseUrl + "/api/Account/resetpassword";
+ url_ = url_.replace(/[?&]$/, "");
+
+ const content_ = JSON.stringify(model);
+
+ let options_ : any = {
+ body: content_,
+ observe: "response",
+ responseType: "blob",
+ headers: new HttpHeaders({
+ "Content-Type": "application/json",
+ "Accept": "application/json"
+ })
+ };
+
+ return this.http.request("post", url_, options_).pipe(_observableMergeMap((response_ : any) => {
+ return this.processResetPassword(response_);
+ })).pipe(_observableCatch((response_: any) => {
+ if (response_ instanceof HttpResponseBase) {
+ try {
+ return this.processResetPassword(response_);
+ } catch (e) {
+ return >_observableThrow(e);
+ }
+ } else
+ return >_observableThrow(response_);
+ }));
+ }
+
+ protected processResetPassword(response: HttpResponseBase): Observable {
+ const status = response.status;
+ const responseBlob =
+ response instanceof HttpResponse ? response.body :
+ (response).error instanceof Blob ? (response).error : undefined;
+
+ let _headers: any = {}; if (response.headers) { for (let key of response.headers.keys()) { _headers[key] = response.headers.get(key); }};
+ if (status === 200 || status === 206) {
+ const contentDisposition = response.headers ? response.headers.get("content-disposition") : undefined;
+ const fileNameMatch = contentDisposition ? /filename="?([^"]*?)"?(;|$)/g.exec(contentDisposition) : undefined;
+ const fileName = fileNameMatch && fileNameMatch.length > 1 ? fileNameMatch[1] : undefined;
+ return _observableOf({ fileName: fileName, data: responseBlob, status: status, headers: _headers });
+ } else if (status !== 200 && status !== 204) {
+ return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {
+ return throwException("An unexpected server error occurred.", status, _responseText, _headers);
+ }));
+ }
+ return _observableOf(null);
+ }
+
+ sendCode(returnUrl: string | null | undefined, rememberMe: boolean | undefined): Observable {
+ let url_ = this.baseUrl + "/api/Account/SendCode?";
+ if (returnUrl !== undefined)
+ url_ += "returnUrl=" + encodeURIComponent("" + returnUrl) + "&";
+ if (rememberMe === null)
+ throw new Error("The parameter 'rememberMe' cannot be null.");
+ else if (rememberMe !== undefined)
+ url_ += "rememberMe=" + encodeURIComponent("" + rememberMe) + "&";
+ url_ = url_.replace(/[?&]$/, "");
+
+ let options_ : any = {
+ observe: "response",
+ responseType: "blob",
+ headers: new HttpHeaders({
+ "Content-Type": "application/json",
+ "Accept": "application/json"
+ })
+ };
+
+ return this.http.request("get", url_, options_).pipe(_observableMergeMap((response_ : any) => {
+ return this.processSendCode(response_);
+ })).pipe(_observableCatch((response_: any) => {
+ if (response_ instanceof HttpResponseBase) {
+ try {
+ return this.processSendCode(response_);
+ } catch (e) {
+ return >_observableThrow(e);
+ }
+ } else
+ return >_observableThrow(response_);
+ }));
+ }
+
+ protected processSendCode(response: HttpResponseBase): Observable {
+ const status = response.status;
+ const responseBlob =
+ response instanceof HttpResponse ? response.body :
+ (response).error instanceof Blob ? (response).error : undefined;
+
+ let _headers: any = {}; if (response.headers) { for (let key of response.headers.keys()) { _headers[key] = response.headers.get(key); }};
+ if (status === 200 || status === 206) {
+ const contentDisposition = response.headers ? response.headers.get("content-disposition") : undefined;
+ const fileNameMatch = contentDisposition ? /filename="?([^"]*?)"?(;|$)/g.exec(contentDisposition) : undefined;
+ const fileName = fileNameMatch && fileNameMatch.length > 1 ? fileNameMatch[1] : undefined;
+ return _observableOf({ fileName: fileName, data: responseBlob, status: status, headers: _headers });
+ } else if (status !== 200 && status !== 204) {
+ return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {
+ return throwException("An unexpected server error occurred.", status, _responseText, _headers);
+ }));
+ }
+ return _observableOf(null);
+ }
+
+ sendCode2(model: SendCodeViewModel | null): Observable {
+ let url_ = this.baseUrl + "/api/Account/SendCode";
+ url_ = url_.replace(/[?&]$/, "");
+
+ const content_ = JSON.stringify(model);
+
+ let options_ : any = {
+ body: content_,
+ observe: "response",
+ responseType: "blob",
+ headers: new HttpHeaders({
+ "Content-Type": "application/json",
+ "Accept": "application/json"
+ })
+ };
+
+ return this.http.request("post", url_, options_).pipe(_observableMergeMap((response_ : any) => {
+ return this.processSendCode2(response_);
+ })).pipe(_observableCatch((response_: any) => {
+ if (response_ instanceof HttpResponseBase) {
+ try {
+ return this.processSendCode2(response_);
+ } catch (e) {
+ return >_observableThrow(e);
+ }
+ } else
+ return >_observableThrow(response_);
+ }));
+ }
+
+ protected processSendCode2(response: HttpResponseBase): Observable {
+ const status = response.status;
+ const responseBlob =
+ response instanceof HttpResponse ? response.body :
+ (response).error instanceof Blob ? (response).error : undefined;
+
+ let _headers: any = {}; if (response.headers) { for (let key of response.headers.keys()) { _headers[key] = response.headers.get(key); }};
+ if (status === 200 || status === 206) {
+ const contentDisposition = response.headers ? response.headers.get("content-disposition") : undefined;
+ const fileNameMatch = contentDisposition ? /filename="?([^"]*?)"?(;|$)/g.exec(contentDisposition) : undefined;
+ const fileName = fileNameMatch && fileNameMatch.length > 1 ? fileNameMatch[1] : undefined;
+ return _observableOf({ fileName: fileName, data: responseBlob, status: status, headers: _headers });
+ } else if (status !== 200 && status !== 204) {
+ return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {
+ return throwException("An unexpected server error occurred.", status, _responseText, _headers);
+ }));
+ }
+ return _observableOf(null);
+ }
+
+ verifyCode(provider: string | null, rememberMe: boolean, returnUrl: string | null | undefined): Observable {
+ let url_ = this.baseUrl + "/api/Account/VerifyCode?";
+ if (provider === undefined)
+ throw new Error("The parameter 'provider' must be defined.");
+ else
+ url_ += "provider=" + encodeURIComponent("" + provider) + "&";
+ if (rememberMe === undefined || rememberMe === null)
+ throw new Error("The parameter 'rememberMe' must be defined and cannot be null.");
+ else
+ url_ += "rememberMe=" + encodeURIComponent("" + rememberMe) + "&";
+ if (returnUrl !== undefined)
+ url_ += "returnUrl=" + encodeURIComponent("" + returnUrl) + "&";
+ url_ = url_.replace(/[?&]$/, "");
+
+ let options_ : any = {
+ observe: "response",
+ responseType: "blob",
+ headers: new HttpHeaders({
+ "Content-Type": "application/json",
+ "Accept": "application/json"
+ })
+ };
+
+ return this.http.request("get", url_, options_).pipe(_observableMergeMap((response_ : any) => {
+ return this.processVerifyCode(response_);
+ })).pipe(_observableCatch((response_: any) => {
+ if (response_ instanceof HttpResponseBase) {
+ try {
+ return this.processVerifyCode(response_);
+ } catch (e) {
+ return >_observableThrow(e);
+ }
+ } else
+ return >_observableThrow(response_);
+ }));
+ }
+
+ protected processVerifyCode(response: HttpResponseBase): Observable {
+ const status = response.status;
+ const responseBlob =
+ response instanceof HttpResponse ? response.body :
+ (response).error instanceof Blob ? (response).error : undefined;
+
+ let _headers: any = {}; if (response.headers) { for (let key of response.headers.keys()) { _headers[key] = response.headers.get(key); }};
+ if (status === 200 || status === 206) {
+ const contentDisposition = response.headers ? response.headers.get("content-disposition") : undefined;
+ const fileNameMatch = contentDisposition ? /filename="?([^"]*?)"?(;|$)/g.exec(contentDisposition) : undefined;
+ const fileName = fileNameMatch && fileNameMatch.length > 1 ? fileNameMatch[1] : undefined;
+ return _observableOf({ fileName: fileName, data: responseBlob, status: status, headers: _headers });
+ } else if (status !== 200 && status !== 204) {
+ return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {
+ return throwException("An unexpected server error occurred.", status, _responseText, _headers);
+ }));
+ }
+ return _observableOf(null);
+ }
+
+ verifyCode2(provider: string | null, code: string | null, returnUrl: string | null, rememberBrowser: boolean, rememberMe: boolean): Observable {
+ let url_ = this.baseUrl + "/api/Account/VerifyCode?";
+ if (provider === undefined)
+ throw new Error("The parameter 'provider' must be defined.");
+ else
+ url_ += "Provider=" + encodeURIComponent("" + provider) + "&";
+ if (code === undefined)
+ throw new Error("The parameter 'code' must be defined.");
+ else
+ url_ += "Code=" + encodeURIComponent("" + code) + "&";
+ if (returnUrl === undefined)
+ throw new Error("The parameter 'returnUrl' must be defined.");
+ else
+ url_ += "ReturnUrl=" + encodeURIComponent("" + returnUrl) + "&";
+ if (rememberBrowser === undefined || rememberBrowser === null)
+ throw new Error("The parameter 'rememberBrowser' must be defined and cannot be null.");
+ else
+ url_ += "RememberBrowser=" + encodeURIComponent("" + rememberBrowser) + "&";
+ if (rememberMe === undefined || rememberMe === null)
+ throw new Error("The parameter 'rememberMe' must be defined and cannot be null.");
+ else
+ url_ += "RememberMe=" + encodeURIComponent("" + rememberMe) + "&";
+ url_ = url_.replace(/[?&]$/, "");
+
+ let options_ : any = {
+ observe: "response",
+ responseType: "blob",
+ headers: new HttpHeaders({
+ "Content-Type": "application/json",
+ "Accept": "application/json"
+ })
+ };
+
+ return this.http.request("post", url_, options_).pipe(_observableMergeMap((response_ : any) => {
+ return this.processVerifyCode2(response_);
+ })).pipe(_observableCatch((response_: any) => {
+ if (response_ instanceof HttpResponseBase) {
+ try {
+ return this.processVerifyCode2(response_);
+ } catch (e) {
+ return >_observableThrow(e);
+ }
+ } else
+ return >_observableThrow(response_);
+ }));
+ }
+
+ protected processVerifyCode2(response: HttpResponseBase): Observable {
+ const status = response.status;
+ const responseBlob =
+ response instanceof HttpResponse ? response.body :
+ (response).error instanceof Blob ? (response).error : undefined;
+
+ let _headers: any = {}; if (response.headers) { for (let key of response.headers.keys()) { _headers[key] = response.headers.get(key); }};
+ if (status === 200 || status === 206) {
+ const contentDisposition = response.headers ? response.headers.get("content-disposition") : undefined;
+ const fileNameMatch = contentDisposition ? /filename="?([^"]*?)"?(;|$)/g.exec(contentDisposition) : undefined;
+ const fileName = fileNameMatch && fileNameMatch.length > 1 ? fileNameMatch[1] : undefined;
+ return _observableOf({ fileName: fileName, data: responseBlob, status: status, headers: _headers });
+ } else if (status !== 200 && status !== 204) {
+ return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {
+ return throwException("An unexpected server error occurred.", status, _responseText, _headers);
+ }));
+ }
+ return _observableOf(null);
+ }
+
+ logOff(): Observable {
+ let url_ = this.baseUrl + "/api/Account/logout";
+ url_ = url_.replace(/[?&]$/, "");
+
+ let options_ : any = {
+ observe: "response",
+ responseType: "blob",
+ headers: new HttpHeaders({
+ "Content-Type": "application/json",
+ "Accept": "application/json"
+ })
+ };
+
+ return this.http.request("post", url_, options_).pipe(_observableMergeMap((response_ : any) => {
+ return this.processLogOff(response_);
+ })).pipe(_observableCatch((response_: any) => {
+ if (response_ instanceof HttpResponseBase) {
+ try {
+ return this.processLogOff(response_);
+ } catch (e) {
+ return >_observableThrow(e);
+ }
+ } else
+ return >_observableThrow(response_);
+ }));
+ }
+
+ protected processLogOff(response: HttpResponseBase): Observable {
+ const status = response.status;
+ const responseBlob =
+ response instanceof HttpResponse ? response.body :
+ (response).error instanceof Blob ? (response).error : undefined;
+
+ let _headers: any = {}; if (response.headers) { for (let key of response.headers.keys()) { _headers[key] = response.headers.get(key); }};
+ if (status === 200 || status === 206) {
+ const contentDisposition = response.headers ? response.headers.get("content-disposition") : undefined;
+ const fileNameMatch = contentDisposition ? /filename="?([^"]*?)"?(;|$)/g.exec(contentDisposition) : undefined;
+ const fileName = fileNameMatch && fileNameMatch.length > 1 ? fileNameMatch[1] : undefined;
+ return _observableOf({ fileName: fileName, data: responseBlob, status: status, headers: _headers });
+ } else if (status !== 200 && status !== 204) {
+ return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {
+ return throwException("An unexpected server error occurred.", status, _responseText, _headers);
+ }));
+ }
+ return _observableOf(null);
+ }
+}
+
+@Injectable({
+ providedIn: 'root'
+})
+export class AuthorizationClient {
+ private http: HttpClient;
+ private baseUrl: string;
+ protected jsonParseReviver: ((key: string, value: any) => any) | undefined = undefined;
+
+ constructor(@Inject(HttpClient) http: HttpClient, @Optional() @Inject(API_BASE_URL) baseUrl?: string) {
+ this.http = http;
+ this.baseUrl = baseUrl ? baseUrl : "";
+ }
+
+ exchange(accessToken: string | null, acrValues: string | null, assertion: string | null, claims: any | null, claimsLocales: string | null, clientAssertion: string | null, clientAssertionType: string | null, clientId: string | null, clientSecret: string | null, code: string | null, codeChallenge: string | null, codeChallengeMethod: string | null, codeVerifier: string | null, display: string | null, grantType: string | null, identityProvider: string | null, idTokenHint: string | null, loginHint: string | null, maxAge: number | null, nonce: string | null, password: string | null, postLogoutRedirectUri: string | null, prompt: string | null, redirectUri: string | null, refreshToken: string | null, request: string | null, requestId: string | null, requestUri: string | null, resource: string | null, responseMode: string | null, responseType: string | null, scope: string | null, state: string | null, token: string | null, tokenTypeHint: string | null, registration: any | null, uiLocales: string | null, username: string | null): Observable {
+ let url_ = this.baseUrl + "/connect/token?";
+ if (accessToken === undefined)
+ throw new Error("The parameter 'accessToken' must be defined.");
+ else
+ url_ += "AccessToken=" + encodeURIComponent("" + accessToken) + "&";
+ if (acrValues === undefined)
+ throw new Error("The parameter 'acrValues' must be defined.");
+ else
+ url_ += "AcrValues=" + encodeURIComponent("" + acrValues) + "&";
+ if (assertion === undefined)
+ throw new Error("The parameter 'assertion' must be defined.");
+ else
+ url_ += "Assertion=" + encodeURIComponent("" + assertion) + "&";
+ if (claims === undefined)
+ throw new Error("The parameter 'claims' must be defined.");
+ else
+ url_ += "Claims=" + encodeURIComponent("" + claims) + "&";
+ if (claimsLocales === undefined)
+ throw new Error("The parameter 'claimsLocales' must be defined.");
+ else
+ url_ += "ClaimsLocales=" + encodeURIComponent("" + claimsLocales) + "&";
+ if (clientAssertion === undefined)
+ throw new Error("The parameter 'clientAssertion' must be defined.");
+ else
+ url_ += "ClientAssertion=" + encodeURIComponent("" + clientAssertion) + "&";
+ if (clientAssertionType === undefined)
+ throw new Error("The parameter 'clientAssertionType' must be defined.");
+ else
+ url_ += "ClientAssertionType=" + encodeURIComponent("" + clientAssertionType) + "&";
+ if (clientId === undefined)
+ throw new Error("The parameter 'clientId' must be defined.");
+ else
+ url_ += "ClientId=" + encodeURIComponent("" + clientId) + "&";
+ if (clientSecret === undefined)
+ throw new Error("The parameter 'clientSecret' must be defined.");
+ else
+ url_ += "ClientSecret=" + encodeURIComponent("" + clientSecret) + "&";
+ if (code === undefined)
+ throw new Error("The parameter 'code' must be defined.");
+ else
+ url_ += "Code=" + encodeURIComponent("" + code) + "&";
+ if (codeChallenge === undefined)
+ throw new Error("The parameter 'codeChallenge' must be defined.");
+ else
+ url_ += "CodeChallenge=" + encodeURIComponent("" + codeChallenge) + "&";
+ if (codeChallengeMethod === undefined)
+ throw new Error("The parameter 'codeChallengeMethod' must be defined.");
+ else
+ url_ += "CodeChallengeMethod=" + encodeURIComponent("" + codeChallengeMethod) + "&";
+ if (codeVerifier === undefined)
+ throw new Error("The parameter 'codeVerifier' must be defined.");
+ else
+ url_ += "CodeVerifier=" + encodeURIComponent("" + codeVerifier) + "&";
+ if (display === undefined)
+ throw new Error("The parameter 'display' must be defined.");
+ else
+ url_ += "Display=" + encodeURIComponent("" + display) + "&";
+ if (grantType === undefined)
+ throw new Error("The parameter 'grantType' must be defined.");
+ else
+ url_ += "GrantType=" + encodeURIComponent("" + grantType) + "&";
+ if (identityProvider === undefined)
+ throw new Error("The parameter 'identityProvider' must be defined.");
+ else
+ url_ += "IdentityProvider=" + encodeURIComponent("" + identityProvider) + "&";
+ if (idTokenHint === undefined)
+ throw new Error("The parameter 'idTokenHint' must be defined.");
+ else
+ url_ += "IdTokenHint=" + encodeURIComponent("" + idTokenHint) + "&";
+ if (loginHint === undefined)
+ throw new Error("The parameter 'loginHint' must be defined.");
+ else
+ url_ += "LoginHint=" + encodeURIComponent("" + loginHint) + "&";
+ if (maxAge === undefined)
+ throw new Error("The parameter 'maxAge' must be defined.");
+ else
+ url_ += "MaxAge=" + encodeURIComponent("" + maxAge) + "&";
+ if (nonce === undefined)
+ throw new Error("The parameter 'nonce' must be defined.");
+ else
+ url_ += "Nonce=" + encodeURIComponent("" + nonce) + "&";
+ if (password === undefined)
+ throw new Error("The parameter 'password' must be defined.");
+ else
+ url_ += "Password=" + encodeURIComponent("" + password) + "&";
+ if (postLogoutRedirectUri === undefined)
+ throw new Error("The parameter 'postLogoutRedirectUri' must be defined.");
+ else
+ url_ += "PostLogoutRedirectUri=" + encodeURIComponent("" + postLogoutRedirectUri) + "&";
+ if (prompt === undefined)
+ throw new Error("The parameter 'prompt' must be defined.");
+ else
+ url_ += "Prompt=" + encodeURIComponent("" + prompt) + "&";
+ if (redirectUri === undefined)
+ throw new Error("The parameter 'redirectUri' must be defined.");
+ else
+ url_ += "RedirectUri=" + encodeURIComponent("" + redirectUri) + "&";
+ if (refreshToken === undefined)
+ throw new Error("The parameter 'refreshToken' must be defined.");
+ else
+ url_ += "RefreshToken=" + encodeURIComponent("" + refreshToken) + "&";
+ if (request === undefined)
+ throw new Error("The parameter 'request' must be defined.");
+ else
+ url_ += "Request=" + encodeURIComponent("" + request) + "&";
+ if (requestId === undefined)
+ throw new Error("The parameter 'requestId' must be defined.");
+ else
+ url_ += "RequestId=" + encodeURIComponent("" + requestId) + "&";
+ if (requestUri === undefined)
+ throw new Error("The parameter 'requestUri' must be defined.");
+ else
+ url_ += "RequestUri=" + encodeURIComponent("" + requestUri) + "&";
+ if (resource === undefined)
+ throw new Error("The parameter 'resource' must be defined.");
+ else
+ url_ += "Resource=" + encodeURIComponent("" + resource) + "&";
+ if (responseMode === undefined)
+ throw new Error("The parameter 'responseMode' must be defined.");
+ else
+ url_ += "ResponseMode=" + encodeURIComponent("" + responseMode) + "&";
+ if (responseType === undefined)
+ throw new Error("The parameter 'responseType' must be defined.");
+ else
+ url_ += "ResponseType=" + encodeURIComponent("" + responseType) + "&";
+ if (scope === undefined)
+ throw new Error("The parameter 'scope' must be defined.");
+ else
+ url_ += "Scope=" + encodeURIComponent("" + scope) + "&";
+ if (state === undefined)
+ throw new Error("The parameter 'state' must be defined.");
+ else
+ url_ += "State=" + encodeURIComponent("" + state) + "&";
+ if (token === undefined)
+ throw new Error("The parameter 'token' must be defined.");
+ else
+ url_ += "Token=" + encodeURIComponent("" + token) + "&";
+ if (tokenTypeHint === undefined)
+ throw new Error("The parameter 'tokenTypeHint' must be defined.");
+ else
+ url_ += "TokenTypeHint=" + encodeURIComponent("" + tokenTypeHint) + "&";
+ if (registration === undefined)
+ throw new Error("The parameter 'registration' must be defined.");
+ else
+ url_ += "Registration=" + encodeURIComponent("" + registration) + "&";
+ if (uiLocales === undefined)
+ throw new Error("The parameter 'uiLocales' must be defined.");
+ else
+ url_ += "UiLocales=" + encodeURIComponent("" + uiLocales) + "&";
+ if (username === undefined)
+ throw new Error("The parameter 'username' must be defined.");
+ else
+ url_ += "Username=" + encodeURIComponent("" + username) + "&";
+ url_ = url_.replace(/[?&]$/, "");
+
+ let options_ : any = {
+ observe: "response",
+ responseType: "blob",
+ headers: new HttpHeaders({
+ "Content-Type": "application/json",
+ "Accept": "application/json"
+ })
+ };
+
+ return this.http.request("post", url_, options_).pipe(_observableMergeMap((response_ : any) => {
+ return this.processExchange(response_);
+ })).pipe(_observableCatch((response_: any) => {
+ if (response_ instanceof HttpResponseBase) {
+ try {
+ return this.processExchange(response_);
+ } catch (e) {
+ return >_observableThrow(e);
+ }
+ } else
+ return >_observableThrow(response_);
+ }));
+ }
+
+ protected processExchange(response: HttpResponseBase): Observable {
+ const status = response.status;
+ const responseBlob =
+ response instanceof HttpResponse ? response.body :
+ (response).error instanceof Blob ? (response).error : undefined;
+
+ let _headers: any = {}; if (response.headers) { for (let key of response.headers.keys()) { _headers[key] = response.headers.get(key); }};
+ if (status === 200 || status === 206) {
+ const contentDisposition = response.headers ? response.headers.get("content-disposition") : undefined;
+ const fileNameMatch = contentDisposition ? /filename="?([^"]*?)"?(;|$)/g.exec(contentDisposition) : undefined;
+ const fileName = fileNameMatch && fileNameMatch.length > 1 ? fileNameMatch[1] : undefined;
+ return _observableOf({ fileName: fileName, data: responseBlob, status: status, headers: _headers });
+ } else if (status !== 200 && status !== 204) {
+ return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {
+ return throwException("An unexpected server error occurred.", status, _responseText, _headers);
+ }));
+ }
+ return _observableOf(null);
+ }
+
+ authorize(accessToken: string | null, acrValues: string | null, assertion: string | null, claims: any | null, claimsLocales: string | null, clientAssertion: string | null, clientAssertionType: string | null, clientId: string | null, clientSecret: string | null, code: string | null, codeChallenge: string | null, codeChallengeMethod: string | null, codeVerifier: string | null, display: string | null, grantType: string | null, identityProvider: string | null, idTokenHint: string | null, loginHint: string | null, maxAge: number | null, nonce: string | null, password: string | null, postLogoutRedirectUri: string | null, prompt: string | null, redirectUri: string | null, refreshToken: string | null, request: string | null, requestId: string | null, requestUri: string | null, resource: string | null, responseMode: string | null, responseType: string | null, scope: string | null, state: string | null, token: string | null, tokenTypeHint: string | null, registration: any | null, uiLocales: string | null, username: string | null): Observable {
+ let url_ = this.baseUrl + "/connect/authorize?";
+ if (accessToken === undefined)
+ throw new Error("The parameter 'accessToken' must be defined.");
+ else
+ url_ += "AccessToken=" + encodeURIComponent("" + accessToken) + "&";
+ if (acrValues === undefined)
+ throw new Error("The parameter 'acrValues' must be defined.");
+ else
+ url_ += "AcrValues=" + encodeURIComponent("" + acrValues) + "&";
+ if (assertion === undefined)
+ throw new Error("The parameter 'assertion' must be defined.");
+ else
+ url_ += "Assertion=" + encodeURIComponent("" + assertion) + "&";
+ if (claims === undefined)
+ throw new Error("The parameter 'claims' must be defined.");
+ else
+ url_ += "Claims=" + encodeURIComponent("" + claims) + "&";
+ if (claimsLocales === undefined)
+ throw new Error("The parameter 'claimsLocales' must be defined.");
+ else
+ url_ += "ClaimsLocales=" + encodeURIComponent("" + claimsLocales) + "&";
+ if (clientAssertion === undefined)
+ throw new Error("The parameter 'clientAssertion' must be defined.");
+ else
+ url_ += "ClientAssertion=" + encodeURIComponent("" + clientAssertion) + "&";
+ if (clientAssertionType === undefined)
+ throw new Error("The parameter 'clientAssertionType' must be defined.");
+ else
+ url_ += "ClientAssertionType=" + encodeURIComponent("" + clientAssertionType) + "&";
+ if (clientId === undefined)
+ throw new Error("The parameter 'clientId' must be defined.");
+ else
+ url_ += "ClientId=" + encodeURIComponent("" + clientId) + "&";
+ if (clientSecret === undefined)
+ throw new Error("The parameter 'clientSecret' must be defined.");
+ else
+ url_ += "ClientSecret=" + encodeURIComponent("" + clientSecret) + "&";
+ if (code === undefined)
+ throw new Error("The parameter 'code' must be defined.");
+ else
+ url_ += "Code=" + encodeURIComponent("" + code) + "&";
+ if (codeChallenge === undefined)
+ throw new Error("The parameter 'codeChallenge' must be defined.");
+ else
+ url_ += "CodeChallenge=" + encodeURIComponent("" + codeChallenge) + "&";
+ if (codeChallengeMethod === undefined)
+ throw new Error("The parameter 'codeChallengeMethod' must be defined.");
+ else
+ url_ += "CodeChallengeMethod=" + encodeURIComponent("" + codeChallengeMethod) + "&";
+ if (codeVerifier === undefined)
+ throw new Error("The parameter 'codeVerifier' must be defined.");
+ else
+ url_ += "CodeVerifier=" + encodeURIComponent("" + codeVerifier) + "&";
+ if (display === undefined)
+ throw new Error("The parameter 'display' must be defined.");
+ else
+ url_ += "Display=" + encodeURIComponent("" + display) + "&";
+ if (grantType === undefined)
+ throw new Error("The parameter 'grantType' must be defined.");
+ else
+ url_ += "GrantType=" + encodeURIComponent("" + grantType) + "&";
+ if (identityProvider === undefined)
+ throw new Error("The parameter 'identityProvider' must be defined.");
+ else
+ url_ += "IdentityProvider=" + encodeURIComponent("" + identityProvider) + "&";
+ if (idTokenHint === undefined)
+ throw new Error("The parameter 'idTokenHint' must be defined.");
+ else
+ url_ += "IdTokenHint=" + encodeURIComponent("" + idTokenHint) + "&";
+ if (loginHint === undefined)
+ throw new Error("The parameter 'loginHint' must be defined.");
+ else
+ url_ += "LoginHint=" + encodeURIComponent("" + loginHint) + "&";
+ if (maxAge === undefined)
+ throw new Error("The parameter 'maxAge' must be defined.");
+ else
+ url_ += "MaxAge=" + encodeURIComponent("" + maxAge) + "&";
+ if (nonce === undefined)
+ throw new Error("The parameter 'nonce' must be defined.");
+ else
+ url_ += "Nonce=" + encodeURIComponent("" + nonce) + "&";
+ if (password === undefined)
+ throw new Error("The parameter 'password' must be defined.");
+ else
+ url_ += "Password=" + encodeURIComponent("" + password) + "&";
+ if (postLogoutRedirectUri === undefined)
+ throw new Error("The parameter 'postLogoutRedirectUri' must be defined.");
+ else
+ url_ += "PostLogoutRedirectUri=" + encodeURIComponent("" + postLogoutRedirectUri) + "&";
+ if (prompt === undefined)
+ throw new Error("The parameter 'prompt' must be defined.");
+ else
+ url_ += "Prompt=" + encodeURIComponent("" + prompt) + "&";
+ if (redirectUri === undefined)
+ throw new Error("The parameter 'redirectUri' must be defined.");
+ else
+ url_ += "RedirectUri=" + encodeURIComponent("" + redirectUri) + "&";
+ if (refreshToken === undefined)
+ throw new Error("The parameter 'refreshToken' must be defined.");
+ else
+ url_ += "RefreshToken=" + encodeURIComponent("" + refreshToken) + "&";
+ if (request === undefined)
+ throw new Error("The parameter 'request' must be defined.");
+ else
+ url_ += "Request=" + encodeURIComponent("" + request) + "&";
+ if (requestId === undefined)
+ throw new Error("The parameter 'requestId' must be defined.");
+ else
+ url_ += "RequestId=" + encodeURIComponent("" + requestId) + "&";
+ if (requestUri === undefined)
+ throw new Error("The parameter 'requestUri' must be defined.");
+ else
+ url_ += "RequestUri=" + encodeURIComponent("" + requestUri) + "&";
+ if (resource === undefined)
+ throw new Error("The parameter 'resource' must be defined.");
+ else
+ url_ += "Resource=" + encodeURIComponent("" + resource) + "&";
+ if (responseMode === undefined)
+ throw new Error("The parameter 'responseMode' must be defined.");
+ else
+ url_ += "ResponseMode=" + encodeURIComponent("" + responseMode) + "&";
+ if (responseType === undefined)
+ throw new Error("The parameter 'responseType' must be defined.");
+ else
+ url_ += "ResponseType=" + encodeURIComponent("" + responseType) + "&";
+ if (scope === undefined)
+ throw new Error("The parameter 'scope' must be defined.");
+ else
+ url_ += "Scope=" + encodeURIComponent("" + scope) + "&";
+ if (state === undefined)
+ throw new Error("The parameter 'state' must be defined.");
+ else
+ url_ += "State=" + encodeURIComponent("" + state) + "&";
+ if (token === undefined)
+ throw new Error("The parameter 'token' must be defined.");
+ else
+ url_ += "Token=" + encodeURIComponent("" + token) + "&";
+ if (tokenTypeHint === undefined)
+ throw new Error("The parameter 'tokenTypeHint' must be defined.");
+ else
+ url_ += "TokenTypeHint=" + encodeURIComponent("" + tokenTypeHint) + "&";
+ if (registration === undefined)
+ throw new Error("The parameter 'registration' must be defined.");
+ else
+ url_ += "Registration=" + encodeURIComponent("" + registration) + "&";
+ if (uiLocales === undefined)
+ throw new Error("The parameter 'uiLocales' must be defined.");
+ else
+ url_ += "UiLocales=" + encodeURIComponent("" + uiLocales) + "&";
+ if (username === undefined)
+ throw new Error("The parameter 'username' must be defined.");
+ else
+ url_ += "Username=" + encodeURIComponent("" + username) + "&";
+ url_ = url_.replace(/[?&]$/, "");
+
+ let options_ : any = {
+ observe: "response",
+ responseType: "blob",
+ headers: new HttpHeaders({
+ "Content-Type": "application/json",
+ "Accept": "application/json"
+ })
+ };
+
+ return this.http.request("get", url_, options_).pipe(_observableMergeMap((response_ : any) => {
+ return this.processAuthorize(response_);
+ })).pipe(_observableCatch((response_: any) => {
+ if (response_ instanceof HttpResponseBase) {
+ try {
+ return this.processAuthorize(response_);
+ } catch (e) {
+ return >_observableThrow(e);
+ }
+ } else
+ return >_observableThrow(response_);
+ }));
+ }
+
+ protected processAuthorize(response: HttpResponseBase): Observable {
+ const status = response.status;
+ const responseBlob =
+ response instanceof HttpResponse ? response.body :
+ (response).error instanceof Blob ? (response).error : undefined;
+
+ let _headers: any = {}; if (response.headers) { for (let key of response.headers.keys()) { _headers[key] = response.headers.get(key); }};
+ if (status === 200 || status === 206) {
+ const contentDisposition = response.headers ? response.headers.get("content-disposition") : undefined;
+ const fileNameMatch = contentDisposition ? /filename="?([^"]*?)"?(;|$)/g.exec(contentDisposition) : undefined;
+ const fileName = fileNameMatch && fileNameMatch.length > 1 ? fileNameMatch[1] : undefined;
+ return _observableOf({ fileName: fileName, data: responseBlob, status: status, headers: _headers });
+ } else if (status !== 200 && status !== 204) {
+ return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {
+ return throwException("An unexpected server error occurred.", status, _responseText, _headers);
+ }));
+ }
+ return _observableOf(null);
+ }
+}
+
+@Injectable({
+ providedIn: 'root'
+})
+export class ContentClient {
+ private http: HttpClient;
+ private baseUrl: string;
+ protected jsonParseReviver: ((key: string, value: any) => any) | undefined = undefined;
+
+ constructor(@Inject(HttpClient) http: HttpClient, @Optional() @Inject(API_BASE_URL) baseUrl?: string) {
+ this.http = http;
+ this.baseUrl = baseUrl ? baseUrl : "";
+ }
+
+ get(): Observable {
+ let url_ = this.baseUrl + "/api/Content";
+ url_ = url_.replace(/[?&]$/, "");
+
+ let options_ : any = {
+ observe: "response",
+ responseType: "blob",
+ headers: new HttpHeaders({
+ "Content-Type": "application/json",
+ "Accept": "application/json"
+ })
+ };
+
+ return this.http.request("get", url_, options_).pipe(_observableMergeMap((response_ : any) => {
+ return this.processGet(response_);
+ })).pipe(_observableCatch((response_: any) => {
+ if (response_ instanceof HttpResponseBase) {
+ try {
+ return this.processGet(response_);
+ } catch (e) {
+ return >_observableThrow(e);
+ }
+ } else
+ return >_observableThrow(response_);
+ }));
+ }
+
+ protected processGet(response: HttpResponseBase): Observable {
+ const status = response.status;
+ const responseBlob =
+ response instanceof HttpResponse ? response.body :
+ (response).error instanceof Blob ? (response).error : undefined;
+
+ let _headers: any = {}; if (response.headers) { for (let key of response.headers.keys()) { _headers[key] = response.headers.get(key); }};
+ if (status === 200 || status === 206) {
+ const contentDisposition = response.headers ? response.headers.get("content-disposition") : undefined;
+ const fileNameMatch = contentDisposition ? /filename="?([^"]*?)"?(;|$)/g.exec(contentDisposition) : undefined;
+ const fileName = fileNameMatch && fileNameMatch.length > 1 ? fileNameMatch[1] : undefined;
+ return _observableOf({ fileName: fileName, data: responseBlob, status: status, headers: _headers });
+ } else if (status !== 200 && status !== 204) {
+ return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {
+ return throwException("An unexpected server error occurred.", status, _responseText, _headers);
+ }));
+ }
+ return _observableOf(null);
+ }
+
+ getCultures(): Observable {
+ let url_ = this.baseUrl + "/api/Content/cultures";
+ url_ = url_.replace(/[?&]$/, "");
+
+ let options_ : any = {
+ observe: "response",
+ responseType: "blob",
+ headers: new HttpHeaders({
+ "Content-Type": "application/json",
+ "Accept": "application/json"
+ })
+ };
+
+ return this.http.request("get", url_, options_).pipe(_observableMergeMap((response_ : any) => {
+ return this.processGetCultures(response_);
+ })).pipe(_observableCatch((response_: any) => {
+ if (response_ instanceof HttpResponseBase) {
+ try {
+ return this.processGetCultures(response_);
+ } catch (e) {
+ return >_observableThrow(e);
+ }
+ } else
+ return >_observableThrow(response_);
+ }));
+ }
+
+ protected processGetCultures(response: HttpResponseBase): Observable {
+ const status = response.status;
+ const responseBlob =
+ response instanceof HttpResponse ? response.body :
+ (response).error instanceof Blob ? (response).error : undefined;
+
+ let _headers: any = {}; if (response.headers) { for (let key of response.headers.keys()) { _headers[key] = response.headers.get(key); }};
+ if (status === 200 || status === 206) {
+ const contentDisposition = response.headers ? response.headers.get("content-disposition") : undefined;
+ const fileNameMatch = contentDisposition ? /filename="?([^"]*?)"?(;|$)/g.exec(contentDisposition) : undefined;
+ const fileName = fileNameMatch && fileNameMatch.length > 1 ? fileNameMatch[1] : undefined;
+ return _observableOf({ fileName: fileName, data: responseBlob, status: status, headers: _headers });
+ } else if (status !== 200 && status !== 204) {
+ return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {
+ return throwException("An unexpected server error occurred.", status, _responseText, _headers);
+ }));
+ }
+ return _observableOf(null);
+ }
+}
+
+@Injectable({
+ providedIn: 'root'
+})
+export class ManageClient {
+ private http: HttpClient;
+ private baseUrl: string;
+ protected jsonParseReviver: ((key: string, value: any) => any) | undefined = undefined;
+
+ constructor(@Inject(HttpClient) http: HttpClient, @Optional() @Inject(API_BASE_URL) baseUrl?: string) {
+ this.http = http;
+ this.baseUrl = baseUrl ? baseUrl : "";
+ }
+
+ userInfo(): Observable {
+ let url_ = this.baseUrl + "/api/Manage/userinfo";
+ url_ = url_.replace(/[?&]$/, "");
+
+ let options_ : any = {
+ observe: "response",
+ responseType: "blob",
+ headers: new HttpHeaders({
+ "Content-Type": "application/json",
+ "Accept": "application/json"
+ })
+ };
+
+ return this.http.request("get", url_, options_).pipe(_observableMergeMap((response_ : any) => {
+ return this.processUserInfo(response_);
+ })).pipe(_observableCatch((response_: any) => {
+ if (response_ instanceof HttpResponseBase) {
+ try {
+ return this.processUserInfo(response_);
+ } catch (e) {
+ return >_observableThrow(e);
+ }
+ } else
+ return >_observableThrow(response_);
+ }));
+ }
+
+ protected processUserInfo(response: HttpResponseBase): Observable {
+ const status = response.status;
+ const responseBlob =
+ response instanceof HttpResponse ? response.body :
+ (response).error instanceof Blob ? (response).error : undefined;
+
+ let _headers: any = {}; if (response.headers) { for (let key of response.headers.keys()) { _headers[key] = response.headers.get(key); }};
+ if (status === 200 || status === 206) {
+ const contentDisposition = response.headers ? response.headers.get("content-disposition") : undefined;
+ const fileNameMatch = contentDisposition ? /filename="?([^"]*?)"?(;|$)/g.exec(contentDisposition) : undefined;
+ const fileName = fileNameMatch && fileNameMatch.length > 1 ? fileNameMatch[1] : undefined;
+ return _observableOf({ fileName: fileName, data: responseBlob, status: status, headers: _headers });
+ } else if (status !== 200 && status !== 204) {
+ return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {
+ return throwException("An unexpected server error occurred.", status, _responseText, _headers);
+ }));
+ }
+ return _observableOf(null);
+ }
+
+ userInfo2(model: IndexViewModel | null): Observable {
+ let url_ = this.baseUrl + "/api/Manage/userinfo";
+ url_ = url_.replace(/[?&]$/, "");
+
+ const content_ = JSON.stringify(model);
+
+ let options_ : any = {
+ body: content_,
+ observe: "response",
+ responseType: "blob",
+ headers: new HttpHeaders({
+ "Content-Type": "application/json",
+ "Accept": "application/json"
+ })
+ };
+
+ return this.http.request("post", url_, options_).pipe(_observableMergeMap((response_ : any) => {
+ return this.processUserInfo2(response_);
+ })).pipe(_observableCatch((response_: any) => {
+ if (response_ instanceof HttpResponseBase) {
+ try {
+ return this.processUserInfo2(response_);
+ } catch (e) {
+ return >_observableThrow(e);
+ }
+ } else
+ return >_observableThrow(response_);
+ }));
+ }
+
+ protected processUserInfo2(response: HttpResponseBase): Observable {
+ const status = response.status;
+ const responseBlob =
+ response instanceof HttpResponse ? response.body :
+ (response).error instanceof Blob ? (response).error : undefined;
+
+ let _headers: any = {}; if (response.headers) { for (let key of response.headers.keys()) { _headers[key] = response.headers.get(key); }};
+ if (status === 200 || status === 206) {
+ const contentDisposition = response.headers ? response.headers.get("content-disposition") : undefined;
+ const fileNameMatch = contentDisposition ? /filename="?([^"]*?)"?(;|$)/g.exec(contentDisposition) : undefined;
+ const fileName = fileNameMatch && fileNameMatch.length > 1 ? fileNameMatch[1] : undefined;
+ return _observableOf({ fileName: fileName, data: responseBlob, status: status, headers: _headers });
+ } else if (status !== 200 && status !== 204) {
+ return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {
+ return throwException("An unexpected server error occurred.", status, _responseText, _headers);
+ }));
+ }
+ return _observableOf(null);
+ }
+
+ changePassword(model: ChangePasswordViewModel | null): Observable {
+ let url_ = this.baseUrl + "/api/Manage/changepassword";
+ url_ = url_.replace(/[?&]$/, "");
+
+ const content_ = JSON.stringify(model);
+
+ let options_ : any = {
+ body: content_,
+ observe: "response",
+ responseType: "blob",
+ headers: new HttpHeaders({
+ "Content-Type": "application/json",
+ "Accept": "application/json"
+ })
+ };
+
+ return this.http.request("post", url_, options_).pipe(_observableMergeMap((response_ : any) => {
+ return this.processChangePassword(response_);
+ })).pipe(_observableCatch((response_: any) => {
+ if (response_ instanceof HttpResponseBase) {
+ try {
+ return this.processChangePassword(response_);
+ } catch (e) {
+ return >_observableThrow(e);
+ }
+ } else
+ return >_observableThrow(response_);
+ }));
+ }
+
+ protected processChangePassword(response: HttpResponseBase): Observable {
+ const status = response.status;
+ const responseBlob =
+ response instanceof HttpResponse ? response.body :
+ (response).error instanceof Blob ? (response).error : undefined;
+
+ let _headers: any = {}; if (response.headers) { for (let key of response.headers.keys()) { _headers[key] = response.headers.get(key); }};
+ if (status === 200 || status === 206) {
+ const contentDisposition = response.headers ? response.headers.get("content-disposition") : undefined;
+ const fileNameMatch = contentDisposition ? /filename="?([^"]*?)"?(;|$)/g.exec(contentDisposition) : undefined;
+ const fileName = fileNameMatch && fileNameMatch.length > 1 ? fileNameMatch[1] : undefined;
+ return _observableOf({ fileName: fileName, data: responseBlob, status: status, headers: _headers });
+ } else if (status !== 200 && status !== 204) {
+ return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {
+ return throwException("An unexpected server error occurred.", status, _responseText, _headers);
+ }));
+ }
+ return _observableOf(null);
+ }
+
+ setPassword(model: SetPasswordViewModel | null): Observable {
+ let url_ = this.baseUrl + "/api/Manage/setpassword";
+ url_ = url_.replace(/[?&]$/, "");
+
+ const content_ = JSON.stringify(model);
+
+ let options_ : any = {
+ body: content_,
+ observe: "response",
+ responseType: "blob",
+ headers: new HttpHeaders({
+ "Content-Type": "application/json",
+ "Accept": "application/json"
+ })
+ };
+
+ return this.http.request("post", url_, options_).pipe(_observableMergeMap((response_ : any) => {
+ return this.processSetPassword(response_);
+ })).pipe(_observableCatch((response_: any) => {
+ if (response_ instanceof HttpResponseBase) {
+ try {
+ return this.processSetPassword(response_);
+ } catch (e) {
+ return >_observableThrow(e);
+ }
+ } else
+ return >_observableThrow(response_);
+ }));
+ }
+
+ protected processSetPassword(response: HttpResponseBase): Observable {
+ const status = response.status;
+ const responseBlob =
+ response instanceof HttpResponse ? response.body :
+ (response).error instanceof Blob ? (response).error : undefined;
+
+ let _headers: any = {}; if (response.headers) { for (let key of response.headers.keys()) { _headers[key] = response.headers.get(key); }};
+ if (status === 200 || status === 206) {
+ const contentDisposition = response.headers ? response.headers.get("content-disposition") : undefined;
+ const fileNameMatch = contentDisposition ? /filename="?([^"]*?)"?(;|$)/g.exec(contentDisposition) : undefined;
+ const fileName = fileNameMatch && fileNameMatch.length > 1 ? fileNameMatch[1] : undefined;
+ return _observableOf({ fileName: fileName, data: responseBlob, status: status, headers: _headers });
+ } else if (status !== 200 && status !== 204) {
+ return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {
+ return throwException("An unexpected server error occurred.", status, _responseText, _headers);
+ }));
+ }
+ return _observableOf(null);
+ }
+
+ userPhoto(): Observable {
+ let url_ = this.baseUrl + "/api/Manage/photo";
+ url_ = url_.replace(/[?&]$/, "");
+
+ let options_ : any = {
+ observe: "response",
+ responseType: "blob",
+ headers: new HttpHeaders({
+ "Content-Type": "application/json",
+ "Accept": "application/json"
+ })
+ };
+
+ return this.http.request("get", url_, options_).pipe(_observableMergeMap((response_ : any) => {
+ return this.processUserPhoto(response_);
+ })).pipe(_observableCatch((response_: any) => {
+ if (response_ instanceof HttpResponseBase) {
+ try {
+ return this.processUserPhoto(response_);
+ } catch (e) {
+ return >_observableThrow(e);
+ }
+ } else
+ return >_observableThrow(response_);
+ }));
+ }
+
+ protected processUserPhoto(response: HttpResponseBase): Observable {
+ const status = response.status;
+ const responseBlob =
+ response instanceof HttpResponse ? response.body :
+ (response).error instanceof Blob ? (response).error : undefined;
+
+ let _headers: any = {}; if (response.headers) { for (let key of response.headers.keys()) { _headers[key] = response.headers.get(key); }};
+ if (status === 200 || status === 206) {
+ const contentDisposition = response.headers ? response.headers.get("content-disposition") : undefined;
+ const fileNameMatch = contentDisposition ? /filename="?([^"]*?)"?(;|$)/g.exec(contentDisposition) : undefined;
+ const fileName = fileNameMatch && fileNameMatch.length > 1 ? fileNameMatch[1] : undefined;
+ return _observableOf({ fileName: fileName, data: responseBlob, status: status, headers: _headers });
+ } else if (status !== 200 && status !== 204) {
+ return blobToText(responseBlob).pipe(_observableMergeMap(_responseText => {
+ return throwException("An unexpected server error occurred.", status, _responseText, _headers);
+ }));
+ }
+ return _observableOf(null);
+ }
+
+ userPhoto2(file: FileParameter | null): Observable {
+ let url_ = this.baseUrl + "/api/Manage/photo";
+ url_ = url_.replace(/[?&]$/, "");
+
+ const content_ = new FormData();
+ if (file !== null && file !== undefined)
+ content_.append("file", file.data, file.fileName ? file.fileName : "file");
+
+ let options_ : any = {
+ body: content_,
+ observe: "response",
+ responseType: "blob",
+ headers: new HttpHeaders({
+ "Accept": "application/json"
+ })
+ };
+
+ return this.http.request("post", url_, options_).pipe(_observableMergeMap((response_ : any) => {
+ return this.processUserPhoto2(response_);
+ })).pipe(_observableCatch((response_: any) => {
+ if (response_ instanceof HttpResponseBase) {
+ try {
+ return this.processUserPhoto2(