[KON-289] comments from smoke test and dev code review

Signed-off-by: Peter Buschmann <peter.buschmann@pta.de>
diff --git a/i18n/general.de.json b/i18n/general.de.json
index 469d584..c7717de 100644
--- a/i18n/general.de.json
+++ b/i18n/general.de.json
@@ -2,6 +2,7 @@
 	"ServerError401": "Zugriff nicht erlaubt.Bitte einloggen",
   "ServerError403": "Zugriffe verweigert. Bitte geben Sie korrekte Daten an.",
   "ServerError404": "Nicht gefunden. Bitte kontaktieren Sie den Administrator.",
+  "ServerError409": "Die Aktion kann nicht durchgeführt werden, weil eine Abhängigkeit zu einem anderen Datensatz existiert.",
   "ServerError500": "Ein Fehler ist aufgetreten. Bitte kontaktieren Sie den Administrator.",
   "SuccessNotificationTitle": "Erfolg",
   "ErrorNotificationTitle": "Fehler",
diff --git a/src/app/pages/admin/person-types/person-types-api-client.ts b/src/app/pages/admin/person-types/person-types-api-client.ts
index 1e9d5f4..7d1e921 100644
--- a/src/app/pages/admin/person-types/person-types-api-client.ts
+++ b/src/app/pages/admin/person-types/person-types-api-client.ts
@@ -13,13 +13,13 @@
 
   @GET('/personTypes')
   @Adapter(PersonTypesService.gridAdapter)
-  public getPersonTypes(): Observable<any> {
+  public getPersonTypes(): Observable<PersonType[]> {
     return null;
   }
 
   @GET('/personTypes/{id}')
   @Adapter(PersonTypesService.itemAdapter)
-  public getPersonTypeDetails(@Path('id') id: string): Observable<any> {
+  public getPersonTypeDetails(@Path('id') id: string): Observable<PersonType> {
     return null;
   }
 
diff --git a/src/app/pages/admin/person-types/person-types.sandbox.spec.ts b/src/app/pages/admin/person-types/person-types.sandbox.spec.ts
index 21e4abf..ca69f30 100644
--- a/src/app/pages/admin/person-types/person-types.sandbox.spec.ts
+++ b/src/app/pages/admin/person-types/person-types.sandbox.spec.ts
@@ -47,11 +47,6 @@
     expect(appState.dispatch).toHaveBeenCalledWith(personTypesActions.loadPersonType({ payload: 'x' }));
   });
 
-  it('should call dispatch for saving an item', () => {
-    service.savePersonType();
-    expect(appState.dispatch).toHaveBeenCalledWith(new MarkAsTouchedAction(personTypesFormReducer.FORM_ID));
-  });
-
   it('should clear form via clear()', () => {
     service['clear']();
     expect(service.displayForm).toBe(false);
diff --git a/src/app/pages/admin/person-types/person-types.sandbox.ts b/src/app/pages/admin/person-types/person-types.sandbox.ts
index dfd16d7..d6cb5f9 100644
--- a/src/app/pages/admin/person-types/person-types.sandbox.ts
+++ b/src/app/pages/admin/person-types/person-types.sandbox.ts
@@ -25,6 +25,7 @@
 import { takeUntil, take } from 'rxjs/operators';
 import { NgbModal } from '@ng-bootstrap/ng-bootstrap';
 import { SafetyQueryDialogComponent } from '@shared/components/dialogs/safety-query-dialog/safety-query-dialog.component';
+import { ILoadPersonTypesSuccess } from '@app/shared/store/actions/admin/person-types.action';
 
 @Injectable()
 export class PersonTypesSandbox extends BaseSandbox {
@@ -50,7 +51,7 @@
     this.displayForm = true;
   }
 
-  public loadPersonTypes(): Observable<any> {
+  public loadPersonTypes(): Observable<ILoadPersonTypesSuccess> {
     this.appState$.dispatch(personTypesActions.loadPersonTypes());
     return this.actionsSubject.pipe(ofType(personTypesActions.loadPersonTypesSuccess), take(1));
   }
@@ -99,7 +100,6 @@
   }
 
   public savePersonType(): void {
-    this.appState$.dispatch(new MarkAsTouchedAction(personTypesFormReducer.FORM_ID));
     if (this.currentFormState.isValid) {
       this.appState$.dispatch(
         personTypesActions.savePersonType({
diff --git a/src/app/shared/asyncServices/http/httpResponseHandler.service.ts b/src/app/shared/asyncServices/http/httpResponseHandler.service.ts
index f021a02..eb5da94 100644
--- a/src/app/shared/asyncServices/http/httpResponseHandler.service.ts
+++ b/src/app/shared/asyncServices/http/httpResponseHandler.service.ts
@@ -51,6 +51,10 @@
         this.handleNotFound(response);
         break;
 
+      case 409:
+        this.handleRefExists();
+        break;
+
       case 500:
         this.handleServerError();
         break;
@@ -119,6 +123,16 @@
   }
 
   /**
+   * Shows notification errors when server response status is 409
+   */
+  private handleRefExists(): void {
+    const message: any = this.translateService.instant('ServerError409'),
+      title = this.translateService.instant('ErrorNotificationTitle');
+
+    this.showNotificationError(title, message);
+  }
+
+  /**
    * Shows notification errors when server response status is 500
    */
   private handleServerError(): void {