// PUT: api/ImageDetail/5
 public bool Put(int id, [FromBody] ImageDetailEntity ImageDetailEntity)
 {
     if (id > 0)
     {
         return(_ImageDetailServices.UpdateImageDetail(id, ImageDetailEntity));
     }
     return(false);
 }
 public int CreateImageDetail(ImageDetailEntity imageDetailEntity)
 {
     using (var scope = new TransactionScope())
     {
         var imageDetail = new ImageDetail()
         {
             id          = imageDetailEntity.id,
             path        = imageDetailEntity.path,
             description = imageDetailEntity.description
         };
         _unitOfWork.ImageDetailRepository.Insert(imageDetail);
         _unitOfWork.Save();
         scope.Complete();
         return(imageDetail.id);
     }
 }
        public bool UpdateImageDetail(int imageDetailId, ImageDetailEntity imageDetailEntity)
        {
            var success = false;

            if (imageDetailEntity != null)
            {
                using (var scope = new TransactionScope())
                {
                    var imageDetail = _unitOfWork.ImageDetailRepository.GetByID(imageDetailId);
                    if (imageDetail != null)
                    {
                        imageDetail.path        = imageDetailEntity.path;
                        imageDetail.description = imageDetailEntity.description;
                        _unitOfWork.Save();
                        scope.Complete();
                        success = true;
                    }
                }
            }
            return(success);
        }
 // POST: api/ImageDetail
 public int Post([FromBody] ImageDetailEntity ImageDetailEntity)
 {
     return(_ImageDetailServices.CreateImageDetail(ImageDetailEntity));
 }
Example #5
0
        public async Task Initialize(int imageId, MediaFile imageFile)
        {
            try
            {
                BeginBusy();

                ImageDetails = null;

                var image = _dataAccessService.GetImageById(imageId);

                ImageDetails = new ImageDetailEntity
                {
                    Image = new ImageEntity(null, null, null)
                    {
                        Path = image.Path,
                        //Description = imageVisionDetails.Result.Description.ToString(),
                        ImageId = image.Id,
                        //Title = imageVisionDetails.Result.ImageType.ToString()
                    }
                };

                if (imageFile != null)
                {
                    //When a new image is picked from the gallery or camera
                    var imageVisionDetails = await _faceService.GetImageVisionDetails(imageFile);

                    var faceEmotionsTask = _faceService.GetFaceEmotions(imageFile);

                    var facesArray = await _faceService.GetFacialFeature(imageFile);

                    ImageDetails.Faces = facesArray.Select(x => new FaceEntity
                    {
                        FaceAttributes = x.FaceAttributes,
                        FaceId         = x.FaceId,
                        FaceLandmarks  = x.FaceLandmarks,
                        FaceRectangle  = x.FaceRectangle
                    })
                                         .ToList();

                    var emotionsArray = await faceEmotionsTask;

                    for (var index = 0; index < ImageDetails.Faces.Count; index++)
                    {
                        //get Percentage of the emotions
                        var emotions      = Helper.DisplayPercentage(emotionsArray[index]?.Scores);
                        var faceAttribute = Helper.DisplayPercentage(facesArray[index].FaceAttributes);

                        ImageDetails.Faces[index].FaceAttributes = faceAttribute;
                        ImageDetails.Faces[index].Emotions       = emotions;
                    }

                    //Update database with values fetched from API
                    var title = string.Join(", ", imageVisionDetails.Description.Captions.Select(x => x.Text));
                    image.Title = title.Replace("_", "");

                    var description = string.Join(", ", imageVisionDetails.Categories.Select(x => x.Name));
                    image.Description = description.Replace("_", "");

                    image.Faces = JsonConvert.SerializeObject(ImageDetails.Faces);
                    _dataAccessService.UpdateImageDetails(image);
                }
                else
                {
                    //Already the details of the image are present in the database
                    if (string.IsNullOrWhiteSpace(image.Faces) == false)
                    {
                        ImageDetails.Faces = JsonConvert.DeserializeObject <IList <FaceEntity> >(image.Faces);
                    }
                }
            }
            catch (Exception ex)
            {
                _loggingService.Error(ex);
                _dialogService.ShowToastMessage(PageTitles.ImageDetailTitle, Messages.UnExpectedError, ToastNotificationType.Error);
            }
            finally
            {
                EndBusy();
            }
        }