Exemple #1
0
        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 { })
Exemple #2
0
        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);
        }