Exemplo n.º 1
0
        public async Task <PagedResultDto <ClusteringFaceDto> > QueryClusteringFaceByParams(PagedAndSortedRequestDto input)
        {
            var query = _faceRepository.GetAllIncluding(p => p.SubImageInfos);

            query = await _faceRepository.QueryByParams(input.Parameters, query).ConfigureAwait(false);

            //var faces = await GetAllAsync(input).ConfigureAwait(false);
            var faces = PagingAndSorting(input, query);

            if (input.ImageRequred == 1)
            {
                foreach (var face in faces.Items)
                {
                    var imageToQuery = face.SubImageList.SubImageInfoObject;
                    //imageType
                    if (input.ImageType == "11" || input.ImageType == "14")
                    {
                        imageToQuery = imageToQuery.Where(p => p.Type == input.ImageType).ToList();
                    }
                    foreach (var subImageInfo in imageToQuery)
                    {
                        if (string.IsNullOrEmpty(subImageInfo.ImageKey) ||
                            string.IsNullOrEmpty(subImageInfo.NodeId))
                        {
                            continue;
                        }

                        GetImageRequest request = new GetImageRequest()
                        {
                            BucketName = subImageInfo.NodeId,
                            ImageName  = subImageInfo.ImageKey
                        };

                        GetImageWithBytesResponse response = await _imageAppService.GetImageWithBytesAsync(request).ConfigureAwait(false);

                        subImageInfo.Data = Convert.ToBase64String(response.ImageData);
                    }
                }
            }

            return(new PagedResultDto <ClusteringFaceDto>(faces.TotalCount, ObjectMapper.Map <List <ClusteringFaceDto> >(faces.Items)));
        }