Exemple #1
0
        //for identifier, we should not do update, as it links to the search result.
        private async Task <bool> UpdateIdentifiers()
        {
            if (_personSought.Identifiers == null)
            {
                return(true);
            }

            _logger.LogDebug($"Attempting to update identifier records for PersonSought.");

            foreach (PersonalIdentifier pi in _personSought.Identifiers.Where(m => m.Owner == OwnerType.PersonSought))
            {
                IdentifierEntity identifierEntity   = _mapper.Map <IdentifierEntity>(pi);
                SSG_Identifier   originalIdentifier = _uploadedPerson.SSG_Identifiers?.FirstOrDefault(
                    m => m.InformationSource == InformationSourceType.Request.Value &&
                    m.IdentifierType == identifierEntity.IdentifierType &&
                    m.IsCreatedByAgency);
                if (originalIdentifier == null)
                {
                    await UploadIdentifiers();
                }
                else
                {
                    identifierEntity.IsCreatedByAgency = true;
                    IDictionary <string, object> updatedFields = originalIdentifier.Clone().GetUpdateEntries(identifierEntity);
                    if (updatedFields.Count > 0)
                    {
                        await _searchRequestService.UpdateIdentifier(originalIdentifier.IdentifierId, updatedFields, _cancellationToken);

                        _logger.LogInformation("Update Identifier records for SearchRequest successfully");
                    }
                }
            }

            return(true);
        }