From a8662fbaf458e950f4a1bbd2cd750bba001c376f Mon Sep 17 00:00:00 2001 From: felix-zhaolei Date: Sat, 30 Nov 2024 16:46:59 +0800 Subject: [PATCH] fix: update contact error. --- .../Contacts/ContactAppService.cs | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/src/CAServer.Application/Contacts/ContactAppService.cs b/src/CAServer.Application/Contacts/ContactAppService.cs index a4a9588d1..288a14855 100644 --- a/src/CAServer.Application/Contacts/ContactAppService.cs +++ b/src/CAServer.Application/Contacts/ContactAppService.cs @@ -73,7 +73,7 @@ public async Task CreateAsync(CreateUpdateContactDto input) await CheckAddressAsync(userId, input.Addresses, input.RelationId); var contactDto = await GetContactDtoAsync(input); - + await CheckContactAsync(contactDto); var contactGrain = _clusterClient.GetGrain(GuidGenerator.Create()); var result = @@ -127,13 +127,20 @@ public async Task UpdateAsync(Guid id, CreateUpdateContactDto } var contact = contactResult.Data; - if (contact.Addresses != null && contact.Addresses.Count > 1 && input.Addresses != null && - input.Addresses.Count == 1) + var isUpdate = false; + if (contact.Addresses != null && contact.Addresses.Count > 1 && input.Addresses != null) { - throw new UserFriendlyException("can not modify address"); + if (input.Addresses.Count == 1) + throw new UserFriendlyException("can not modify address"); + + if (!input.Addresses.Select(t => t.Address).Distinct() + .Except(contact.Addresses.Select(t => t.Address).Distinct()).Any() + ) + { + isUpdate = true; + } } - var isUpdate = false; if (contact.Addresses != null && contact.Addresses.Count == 1 && input.Addresses != null && input.Addresses.Count == 1) {