From 7744dc368061e9bbcfdaa5e803dcb3225fb1ac0e Mon Sep 17 00:00:00 2001 From: "kham.vilaythong" Date: Sun, 5 Apr 2026 15:34:23 +1000 Subject: [PATCH] put in new console why is not save attachment person id < 0 --- .~lock.document_Install.docx# | 1 - .../Repository/PersonPhotoRepository.cs | 1 + API/FamilyTreeAPI/appsettings.json | 3 ++- UI/src/app/person/person.edit.ts | 14 ++++++-------- document_Install.docx | Bin 10840 -> 11089 bytes 5 files changed, 9 insertions(+), 10 deletions(-) delete mode 100644 .~lock.document_Install.docx# diff --git a/.~lock.document_Install.docx# b/.~lock.document_Install.docx# deleted file mode 100644 index 23ccb66..0000000 --- a/.~lock.document_Install.docx# +++ /dev/null @@ -1 +0,0 @@ -,PC-KHAM/Kham,PC-KHAM,04.04.2026 22:40,file:///C:/Users/Kham/AppData/Roaming/LibreOffice/4; \ No newline at end of file diff --git a/API/FamilyTreeAPI/Repository/PersonPhotoRepository.cs b/API/FamilyTreeAPI/Repository/PersonPhotoRepository.cs index 5945de0..1f054d4 100644 --- a/API/FamilyTreeAPI/Repository/PersonPhotoRepository.cs +++ b/API/FamilyTreeAPI/Repository/PersonPhotoRepository.cs @@ -72,6 +72,7 @@ namespace FamilyTreeAPI.Repository } _context.PersonPhotos.Add(model); await _context.SaveChangesAsync(); + result = model.Id; statuscode = 1; diff --git a/API/FamilyTreeAPI/appsettings.json b/API/FamilyTreeAPI/appsettings.json index 9039aff..a2d934c 100644 --- a/API/FamilyTreeAPI/appsettings.json +++ b/API/FamilyTreeAPI/appsettings.json @@ -3,7 +3,8 @@ "AppSettings": { "Secret": "Nepean Blue Mountain Super Secret SIGN AND VERIFY JWT TOKENS, BEARER TOKEN USE WHEN CALLING THIS API.", "SQLConnectionString0": "host=localhost;port=5432;database=FamilyTreeDB;username=postgres;password=Positive~1;", - "SQLConnectionString": "host=192.168.1.102;port=5432;database=FamilyTreeDB;username=postgres;password=Positive~1;", + "SQLConnectionString": "host=192.168.1.240;port=5432;database=FamilyTreeDB;username=postgres;password=Positive~1;", + "ImageFolder": "c:\\temp\\Family", "ImportFolder": "c:\\temp" diff --git a/UI/src/app/person/person.edit.ts b/UI/src/app/person/person.edit.ts index 13b71eb..55b6960 100644 --- a/UI/src/app/person/person.edit.ts +++ b/UI/src/app/person/person.edit.ts @@ -496,8 +496,9 @@ assignValue(item:Person): void { this._id = item.id; // this.messageService.add({severity:'success', summary: 'Save user', detail: item.firstName + " " + item.lastName }); //this.router.navigate([this.returnUrl]); - console.log("the person after save", item); + const list = this.getPhotoListforSave(); + console.log("the person after save photo, person", list, item); if (list.length > 0) { this.savePhotoList(list, item); @@ -734,22 +735,19 @@ savePhotoList(list: PersonPhotoDto[], item:Person): void { formData.append("files", file, file.name); } formData.append('personId', item.id.toString()); - + console.log("savephotolist person id", item.id, item); const personPhoto$ = this.personService.savePersonPhotoList(formData); this.subscription.add(personPhoto$.subscribe( { next: x => { - if (x.statusCode == 1) { - //const filename = x.data; - //this.adminuserForm.patchValue({ image: filename }); - this.ref.close(item); - //this.cdr.detectChanges(); + if (x.statusCode == 1) { + this.ref.close(item); } else this.messageService.add({ severity: 'error', summary: 'Error save attach photos files', detail: 'Fail to photos file: ' + x.message }); }, error: e => - this.messageService.add({ severity: 'error', summary: 'Error attach photos file', detail: 'Fail to photos file: ' }) + this.messageService.add({ severity: 'error', summary: 'Error attach photos file', detail: 'Fail to photos file: ' }) } )); diff --git a/document_Install.docx b/document_Install.docx index 83b7976b75880ccee8fea842f1d8c9e65a53cbed..f2001e310fb574b8fd5603741dfad2baf4be37a9 100644 GIT binary patch delta 7779 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 delta 7662 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