public GetQRCodeImageResult GetQRCodeImage(GetQRCodeImageArgs args)
        {
            GetQRCodeImageResult result;

            HttpRequestArgs requestArgs = new HttpRequestArgs();

            requestArgs.Method  = "POST";
            requestArgs.Url     = _fileServiceUri + "QRCode/GetQRCodeImage";
            requestArgs.Content = JsonConvert.SerializeObject(args);

            _log.Write("向文件服务器发起 GetQRCodeImage 请求", requestArgs.Content, TraceEventType.Verbose);

            HttpRequestResult requestResult = _httpService.Request(requestArgs);

            if (requestResult.Success)
            {
                _log.Write("文件服务器 GetQRCodeImage 返回", requestResult.Content, TraceEventType.Verbose);
                result = JsonConvert.DeserializeObject <GetQRCodeImageResult>(requestResult.Content);
            }
            else
            {
                result         = new GetQRCodeImageResult();
                result.Message = requestResult.Exception.Message;
            }
            return(result);
        }
        public ActionResult GetQRCodeImage()
        {
            GetQRCodeImageArgs   args   = RequestArgs <GetQRCodeImageArgs>();
            GetQRCodeImageResult result = new GetQRCodeImageResult();

            if (args == null || String.IsNullOrEmpty(args.Content))
            {
                result.Message = "参数无效。";
                return(new ContentResult()
                {
                    Content = JsonConvert.SerializeObject(result)
                });
            }

            Image qrImage = null;

            try
            {
                qrImage = QRCodeHelper.GetQRCode(args.Content);

                if (qrImage == null)
                {
                    result.Message = "二维码生成失败。";
                    return(new ContentResult()
                    {
                        Content = JsonConvert.SerializeObject(result)
                    });
                }

                string targetDir      = Path.Combine(Server.MapPath("/"), "FileStore", args.Domain.ToString());
                string storeFileName  = Guid.NewGuid().ToString() + ".jpg";
                string outputFileName = Path.Combine(targetDir, storeFileName);
                qrImage.Save(outputFileName, ImageFormat.Jpeg);

                result.Success  = true;
                result.FileName = String.Format("FileStore/{0}/{1}", args.Domain, storeFileName);
            }
            catch (Exception ex)
            {
                result.Message = ex.Message;
            }
            finally
            {
                if (qrImage != null)
                {
                    qrImage.Dispose();
                }
            }


            return(new ContentResult()
            {
                Content = JsonConvert.SerializeObject(result)
            });
        }
        public ActionResult GetCouponRecordQRCode()
        {
            string strRecordId = Request.QueryString["recordId"];
            Guid   recordId    = Guid.Empty;

            if (String.IsNullOrEmpty(strRecordId) || Guid.TryParse(strRecordId, out recordId) == false)
            {
                return(RespondResult(false, "参数无效。"));
            }


            string url = _couponManager.GetRecordQRCodeImageUrl(recordId);

            if (String.IsNullOrEmpty(url))
            {
                string serialNumber = Request.QueryString["serialNumber"];

                string content = String.Format(_settingsManager.GetClientAddress(DomainContext) +
                                               "Home/QRCode/{0}?type=coupon&serialNumber={1}",
                                               DomainContext.Domain.Id, serialNumber);

                GetQRCodeImageArgs getQRCodeImageArgs = new GetQRCodeImageArgs();
                getQRCodeImageArgs.Content = content;
                getQRCodeImageArgs.Domain  = DomainContext.Domain.Id;
                GetQRCodeImageResult getQRCodeImageResult = _fileService.GetQRCodeImage(getQRCodeImageArgs);

                if (getQRCodeImageResult.Success == false)
                {
                    return(RespondResult(false, "生成二维码失败:" + getQRCodeImageResult.Message));
                }

                url = _fileService.FileServiceUri + getQRCodeImageResult.FileName;

                _couponManager.UpdateRecordQRCodeImageUrl(recordId, url);
            }

            return(RespondDataResult(url));
        }