コード例 #1
0
        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
                }
            }));
        }