public HttpResponseMessage SaveSignature(int saleNumber, int tillNumber) { var httpRequest = HttpContext.Current.Request; foreach (string file in httpRequest.Files) { var postedFile = httpRequest.Files[file]; if (postedFile != null && postedFile.ContentLength > 0) { const int maxContentLength = 1024 * 1024 * 1; //Size = 1 MB IList <string> allowedFileExtensions = new List <string> { ".jpg", ".png", ".bmp" }; var ext = postedFile.FileName.Substring(postedFile.FileName.LastIndexOf('.')); var extension = ext.ToLower(); if (!allowedFileExtensions.Contains(extension)) { var message = Resource.UploadImageMessage; return(Request.CreateResponse(HttpStatusCode.BadRequest, new ErrorResponse { Error = new MessageStyle { Message = message, MessageType = 0 } })); } if (postedFile.ContentLength > maxContentLength) { var message = Resource.ImageSizeMessage; return(Request.CreateResponse(HttpStatusCode.BadRequest, new ErrorResponse { Error = new MessageStyle { Message = message, MessageType = 0 } })); } var directory = HttpContext.Current.Server.MapPath("~/Userimages"); Directory.CreateDirectory(directory); var filePath = HttpContext.Current.Server.MapPath("~/Userimages/" + postedFile.FileName); postedFile.SaveAs(filePath); ErrorMessage error; var success = _signatureManager.SaveSignature(tillNumber, saleNumber, filePath, out error); if (!string.IsNullOrEmpty(error?.MessageStyle?.Message)) { var statusCode = error.StatusCode == 0 ? HttpStatusCode.BadRequest : error.StatusCode; return(Request.CreateResponse( statusCode, new ErrorResponse { Error = error.MessageStyle, })); } return(Request.CreateResponse(HttpStatusCode.OK, new SuccessReponse { Success = success })); } } return(Request.CreateResponse(HttpStatusCode.NotFound, new ErrorResponse { Error = new MessageStyle { Message = Resource.UploadImageError, MessageType = 0 } })); }