Exemplo n.º 1
0
        public async Task <ResponseData> SaveImage(VmImageSaveEntity imageEntity, bool isFromUpload = false)
        {
            try
            {
                _logger.LogInformation($"{nameof(SaveImage)} - Called");

                ImageHouse imageHouse = new ImageHouse();
                imageHouse.ImageFileGuid = imageEntity.ImageFileGuid;
                imageHouse.Entity        = imageEntity.Entity;
                imageHouse.ImageLabel    = imageEntity.ImageLabel;
                imageHouse.ReportGuid    = imageEntity.ReportGuid;
                imageHouse.EntityRefGuid = imageEntity.EntityRefGuid;
                var oldImage = _rsaContext.ImageHouses.AsNoTracking().Where(w => w.ImageFileGuid == imageHouse.ImageFileGuid).FirstOrDefault();

                if (!isFromUpload)
                {
                    //if (oldImage != null && oldImage.ImageFileGuid != null)
                    //{
                    //    var filesToDelete = Directory.GetFiles($"{ImageUploadPath}", $"{oldImage.ImageFileGuid}.*");
                    //    foreach (var file in filesToDelete)
                    //        File.Delete(file);
                    //}

                    string filePath = $"{ImageUploadPath}{imageEntity.ImageFileGuid}.jpeg";
                    _logger.LogInformation($"Img Saved - Called");
                    if ("signature".Equals(imageEntity.Entity))
                    {
                        filePath = $"{ImageUploadPath}{imageEntity.ImageFileGuid}.png";
                        File.WriteAllBytes(filePath, Convert.FromBase64String(imageEntity.Base64.Split("data:image/png;base64,")[1]));
                    }
                    else
                    {
                        File.WriteAllBytes(filePath, Convert.FromBase64String(imageEntity.Base64.Split("data:image/jpeg;base64,")[1]));
                    }
                }

                _logger.LogInformation($"Img Saved - Completed");

                if (oldImage == null)
                {
                    imageHouse.Id = 0;
                    _rsaContext.Add(imageHouse);
                }
                else
                {
                    imageHouse.Id = oldImage.Id;
                    _rsaContext.Update(imageHouse);
                }
                if (await _rsaContext.SaveChangesAsync() > 0)
                {
                    //MyImage.ResizeJPEG(filePath);
                    _logger.LogInformation($"{nameof(SaveImage)} - Completed");
                    return(new ResponseData()
                    {
                        status = ResponseStatus.success,
                        data = new { Id = imageHouse.Id, ImageFileGuid = imageHouse.ImageFileGuid, Base64 = GetBase64(imageHouse.ImageFileGuid.ToString(), imageHouse.Entity == "signature" ? "png" : "jpeg") },
                        message = "Image Saved Successfully."
                    });
                }

                return(new ResponseData()
                {
                    status = ResponseStatus.warning,
                    data = 1,
                    message = "Try again after some time."
                });
            }
            catch (Exception ex)
            {
                _logger.LogError(ex, $"{nameof(SaveImage)} - Error");
                return(new ResponseData()
                {
                    status = ResponseStatus.error,
                    message = "Error occurred while saving image. Please contact admin."
                });
            }
        }
Exemplo n.º 2
0
        public async Task <ActionResult> SaveImage(VmImageSaveEntity imageData)
        {
            var result = await _reportActivities.SaveImage(imageData);

            return(Ok(result));
        }