public HttpResponseMessage Upload(ImageUploadRequest imageUploadRequest) { try { if (ModelState.IsValid) { var xmlDocumentName = Guid.NewGuid().ToString() + ".xml"; var imageUploadSession = new ImageUploadSession() { RequestNumber = imageUploadRequest.RequestNumber, UserName = imageUploadRequest.UserName, Image = new Image() { FileName = imageUploadRequest.ImageName, SignedImageFileName = xmlDocumentName } }; var digitalCertificate = _digitalCertificateRepository.Query().FirstOrDefault(); ImageCryptographyManager.SignImage( imageUploadRequest.ImageData, //File.ReadAllBytes(HttpContext.Current.Server.MapPath("~/") + "\\" + "Test.png"), digitalCertificate.PrivateKey, Path.Combine(FilePaths.XMLBasePath, xmlDocumentName) ); _imageUploadSessionRepository.Add(imageUploadSession); return(new HttpResponseMessage { StatusCode = HttpStatusCode.OK, Content = new StringContent(LanguageConstants.ImageSuccessfullyUploaded) }); } else { return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState)); } } catch { // If an uncaught exception occurs, return an error response // with status code 500 (Internal Server Error) return(Request.CreateErrorResponse(HttpStatusCode.InternalServerError, LanguageConstants.InternalServerError)); } }
public HttpResponseMessage Document(int id) { try { var image = _imageRepository.GetImage(id); var digitalCertificate = _digitalCertificateRepository.Query().FirstOrDefault(); var imageData = ImageCryptographyManager.GetImage(Path.Combine(FilePaths.XMLBasePath, image.SignedImageFileName), digitalCertificate.PublicKey); return(new HttpResponseMessage { StatusCode = HttpStatusCode.OK, Content = new StringContent(Convert.ToBase64String(imageData)) }); } catch (Exception ex) { // If an uncaught exception occurs, return an error response // with status code 500 (Internal Server Error) return(Request.CreateErrorResponse(HttpStatusCode.InternalServerError, ex.Message)); } }