Example #1
0
        public async Task <UploadImageResult> UploadImage(MemoryStream memoryStream, Guid mapId)
        {
            var image = new Image();

            using (var md5 = MD5.Create())
            {
                image.ImageKey = BitConverter.ToString(md5.ComputeHash(memoryStream)).Replace("-", "").ToLower();
            }

            memoryStream.Position = 0;
            image.Location        = await _storageAdapter.UploadFile($"{image.Id}.jpg", memoryStream, _storageContainerName);

            if (string.IsNullOrEmpty(image.Location))
            {
                image.Status = ImageStatus.Errored;
                await _imagesRepository.InsertImage(image);

                return(UploadFailureResult());
            }

            if (!await _imagesRepository.InsertImage(image))
            {
                return(UploadFailureResult());
            }

            image.Location = await _storageAdapter.GetFileUriWithKey($"{image.Id}.jpg", _storageContainerName);

            if (string.IsNullOrEmpty(image.Location))
            {
                await _imagesRepository.UpdateImageStatus(image.Id, ImageStatus.Errored);

                return(UploadFailureResult());
            }

            if (!await _queueAdapter.SendMessage(new ImageProcessRequest(image, mapId), "single-image"))
            {
                await _imagesRepository.UpdateImageStatus(image.Id, ImageStatus.Errored);

                return(UploadFailureResult());
            }

            if (!await _imagesRepository.UpdateImageStatus(image.Id, ImageStatus.AwaitingProcessing))
            {
                return(UploadFailureResult());
            }

            return(UploadSuccessResult(image));
        }
Example #2
0
        public MovieDTO EditMovieImage(long id, byte[] imageBytes)
        {
            Movie movieToEdit = _moviesRepository.GetSingleMovie(id).FirstOrDefault();

            if (movieToEdit == null)
            {
                throw new System.Exception("Object not found");
            }


            MovieImage editedImage = _imagesRepository.getImages().Where(p => p.MovieId == id).FirstOrDefault();

            if (editedImage == null)
            {
                MovieImage imageToInsert = new MovieImage()
                {
                    MovieId = id,
                    Image   = imageBytes
                };

                editedImage = _imagesRepository.InsertImage(imageToInsert);
            }
            else
            {
                MovieImage imageToEdit = movieToEdit.Image;
                imageToEdit.Image = imageBytes;

                editedImage = _imagesRepository.UpdateImage(imageToEdit);
            }

            movieToEdit.Image = editedImage;

            return(_mapper.Map <MovieDTO>(_moviesRepository.PatchMovie(movieToEdit)));
        }
 public void InsertImage(List <IFormFile> files, string productId)
 {
     if (files != null && files.Count > 0)
     {
         string webRootPath = _hostingEnvironment.WebRootPath;
         string newPath     = Path.Combine(@"F:\Upload", productId);
         if (!Directory.Exists(productId))
         {
             Directory.CreateDirectory(newPath);
         }
         foreach (IFormFile item in files)
         {
             if (item.Length > 0)
             {
                 string fileName      = ContentDispositionHeaderValue.Parse(item.ContentDisposition).FileName.Trim('"');
                 string reversed      = new String(fileName.ToCharArray().Reverse().ToArray());
                 var    extension     = reversed.Split(".");
                 char[] fileNameArray = extension[0].ToCharArray();
                 Array.Reverse(fileNameArray);
                 var name = Guid.NewGuid();
                 fileName = name + "." + String.Join("", fileNameArray);
                 string fullPath = Path.Combine(newPath, fileName);
                 using (var stream = new FileStream(fullPath, FileMode.Create))
                 {
                     item.CopyTo(stream);
                 }
                 Image image = new Image();
                 image.Id          = Guid.NewGuid();
                 image.ModifyDate  = DateTime.Now;
                 image.CreatedDate = DateTime.Now;
                 image.Path        = fullPath;
                 image.Name        = 0.ToString();
                 image.ProductId   = Guid.Parse(productId);
                 _reponsitory.InsertImage(image);
             }
         }
         _unitOfWork.Commit();
     }
 }