Пример #1
0
 public async Task <ActionResult> PutThumbnail([FromBody] HRSubmitPictureInputDto data)
 {
     if (data == null ||
         !data.Id.HasValue)
     {
         return(new StatusCodeResult(StatusCodes.Status400BadRequest));
     }
     try
     {
         using var updateTask = _storageService.UpdateThumbnailAsync(data.Id.Value, data.ThumbnailUrl);
         await updateTask;
         if (updateTask.IsCompletedSuccessfully)
         {
             return(Ok());
         }
         else
         {
             return(new StatusCodeResult(StatusCodes.Status500InternalServerError));
         }
     }
     catch
     {
         return(new StatusCodeResult(StatusCodes.Status500InternalServerError));
     }
 }
Пример #2
0
 public async Task <ActionResult <HRSubmitPictureOutputDto> > Post([FromBody] HRSubmitPictureInputDto picture)
 {
     if (picture == null)
     {
         return(new StatusCodeResult(StatusCodes.Status400BadRequest));
     }
     try
     {
         picture.Id           = Guid.NewGuid();
         using var taskResult = _birdsSubmissionService.AddPictureDataAsync(picture);
         await taskResult;
         if (taskResult.IsCompletedSuccessfully)
         {
             return(Ok(taskResult.Result));
         }
         else
         {
             return(new StatusCodeResult(StatusCodes.Status500InternalServerError));
         }
     }
     catch
     {
         return(new StatusCodeResult(StatusCodes.Status500InternalServerError));
     }
 }
 /// <summary>
 /// 1- Submit picture to image Repository
 /// 2- Push new imqge metadata to Queue
 /// 3- Return image
 /// </summary>
 /// <param name="picture"></param>
 /// <returns></returns>
 public async Task <HRSubmitPictureListItemDto> AddPictureDataAsync(HRSubmitPictureInputDto picture)
 {
     if (picture != null)
     {
         //1-
         using var thumbnailTask = _imgCDNService.GetImageDataProcessingUrlAsync();
         await thumbnailTask;
         if (thumbnailTask.IsCompletedSuccessfully)
         {
             picture.ThumbnailUrl = thumbnailTask.Result;
             var transcoPic = _mapper.Map <HRSubmitPictureInput>(picture);
             using var taskPicture = _birdsSubmissionrepo.AddPictureAsync(transcoPic);
             await taskPicture;
             if (taskPicture.IsCompletedSuccessfully)
             {
                 var retour = _mapper.Map <HRSubmitPictureListItemDto>(taskPicture.Result);
                 //2-
                 using var queuetask = _queueService.OnNewMetadataImageAsync(retour);
                 await queuetask;
                 //3-
                 return(retour);
             }
             else
             {
                 throw new Exception("_birdsPictureConverter.AddPictureAsync fail.");
             }
         }
         else
         {
             throw new Exception("_imgCDNService.GetImageDataProcessingUrlAsync fail.");
         }
     }
     return(null);
 }
Пример #4
0
        public async Task <ActionResult <HRSubmitPictureOutputDto> > Post([FromBody] FileToCreateDto theFile)
        {
            //TODO move in a specific serviec, controller is doing too much stuffs!
            if (theFile == null ||
                theFile.SubmittedPicture == null ||
                theFile.SubmittedPicture.Id == null ||
                theFile.SubmittedPicture.Id == System.Guid.Empty)
            {
                return(new StatusCodeResult(StatusCodes.Status400BadRequest));
            }
            try
            {
                //1-
                using var uploadTask = _storageService.UploadAsync(theFile);
                await uploadTask;
                if (uploadTask.IsCompletedSuccessfully)
                {
                    //2-
                    HRSubmitPictureInputDto pictureToSubmit = new HRSubmitPictureInputDto();
                    pictureToSubmit.VernacularName = theFile.SubmittedPicture?.VernacularName;
                    pictureToSubmit.SourceType     = theFile.SubmittedPicture?.SourceType;
                    pictureToSubmit.Id             = theFile.SubmittedPicture.Id;
                    pictureToSubmit.GenderType     = theFile.SubmittedPicture?.GenderType;
                    pictureToSubmit.Credit         = theFile.SubmittedPicture?.Credit;
                    pictureToSubmit.Comment        = theFile.SubmittedPicture?.Comment;
                    pictureToSubmit.AgeType        = theFile.SubmittedPicture?.AgeType;
                    pictureToSubmit.ThumbnailUrl   = theFile.SubmittedPicture?.ThumbnailUrl;
                    pictureToSubmit.FullImageUrl   = uploadTask.Result;

                    using var subTask = _birdsSubmissionService.UpdatePictureDataAsync(pictureToSubmit);
                    await subTask;
                    if (subTask.IsCompletedSuccessfully)
                    {
                        return(Ok(subTask.Result));
                    }
                    return(new StatusCodeResult(StatusCodes.Status500InternalServerError));
                }
                else
                {
                    return(new StatusCodeResult(StatusCodes.Status500InternalServerError));
                }
            }
            catch
            {
                return(new StatusCodeResult(StatusCodes.Status500InternalServerError));
            }
        }
 /// <summary>
 ///
 /// </summary>
 /// <param name="test"></param>
 /// <returns></returns>
 public async Task <HRSubmitPictureOutputDto> UpdatePictureDataAsync(HRSubmitPictureInputDto pictureInput)
 {
     if (pictureInput != null)
     {
         var transcoPic = _mapper.Map <HRSubmitPictureInput>(pictureInput);
         using var taskPicture = _birdsSubmissionrepo.UpdatePictureAsync(transcoPic);
         await taskPicture;
         if (taskPicture.IsCompletedSuccessfully)
         {
             return(_mapper.Map <HRSubmitPictureOutputDto>(taskPicture.Result));
         }
         throw new Exception("_birdsPictureConverter.UpdatePictureAsync fail.");
     }
     else
     {
         return(null);
     }
 }
Пример #6
0
        public async Task <string> Get(string id)
        {
            HRSubmitPictureInputDto item = new HRSubmitPictureInputDto()
            {
                AgeType = Guid.NewGuid(),
                Comment = "un commentaire bateau",
                Credit  = "un credit bateau é ",

                //Credit = "un crédit bateâu",
                FullImageUrl   = "http://monimage.jpeg",
                GenderType     = Guid.NewGuid(),
                Id             = Guid.NewGuid(),
                SourceType     = Guid.NewGuid(),
                ThumbnailUrl   = String.Empty,
                VernacularName = "turdus merula",
            };

            using var queuetask = _queueService.OnNewMetadataImageAsync(null);
            await queuetask;

            return("yes");
        }