public async Task <MediaThumbnail?> TryGetFaceThumbnailAsync(Guid personId, CancellationToken cancellationToken) { Person?person = await GetByIdAsync(personId, cancellationToken); MediaFace?face = null; if (person.ProfileFaceId.HasValue) { face = await _faceStore.GetByIdAsync(person.ProfileFaceId.Value, cancellationToken); } else { SearchResult <MediaFace> searchResult = await _faceStore.SearchAsync(new SearchFacesRequest { PageSize = 1, Persons = new[] { personId } }, cancellationToken); if (searchResult.Items.Any()) { face = searchResult.Items.First(); } } if (face is { })
public async Task <MediaFace> AssignPersonByHumanAsync( Guid id, string personName, CancellationToken cancellationToken) { Person person = await _personService.GetOrCreatePersonAsync( personName, cancellationToken); MediaFace face = await _faceStore.GetByIdAsync(id, cancellationToken); face.PersonId = person.Id; face.State = FaceState.Validated; face.RecognitionType = FaceRecognitionType.Human; await UpdateAgeAsync(face, person, cancellationToken); await _faceStore.UpdateAsync(face, cancellationToken); await _bus.Publish(new FaceUpdatedMessage(face.Id, "ASSIGN_BY_HUMAN") { PersonId = person.Id }); return(face); }