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." }); } }
public async Task <ActionResult> SaveImage(VmImageSaveEntity imageData) { var result = await _reportActivities.SaveImage(imageData); return(Ok(result)); }