public ActionResult Update()
        {
            ScenicQRCodeEntity scenicQRCodeEntity = RequestArgs <ScenicQRCodeEntity>();

            if (scenicQRCodeEntity == null)
            {
                return(RespondResult(false, "参数无效。"));
            }

            scenicQRCodeEntity.Domain = UserContext.User.Domain;
            scenicQRCodeEntity.AppId  = DomainContext.AppId;
            NormalResult result = _scenicQRCodeManager.Update(scenicQRCodeEntity);

            #region 操作日志

            _operatedLogManager.Create(new OperatedLogEntity()
            {
                Domain      = DomainContext.Domain.Id,
                AppId       = DomainContext.AppId,
                User        = UserContext.User.Id,
                IP          = Request.UserHostAddress,
                Module      = EnumModule.ScenicQRCode,
                Description = "更新场景二维码"
            });

            #endregion

            return(RespondResult(result.Success, result.Message));
        }
        public NormalResult Create(DomainContext domainContext, ScenicQRCodeEntity scenicQRCode)
        {
            if (scenicQRCode == null)
            {
                Debug.Assert(false, "scenicQRCode 为空");
                return(new NormalResult("参数错误"));
            }

            //if (domainContext.Domain.Type == EnumDomainType.Free)
            //{
            //    //最大数量不允许超过10个
            //    if (GetTotalCount(domainContext) >= 5)
            //    {
            //        return new NormalResult("免费帐户创建场景二维码数量最多不可超过5个。");
            //    }
            //}

            WeixinCreateQRCodeArgs createArgs = new WeixinCreateQRCodeArgs();

            createArgs.ActionInfo.Scene.SceneId = scenicQRCode.Id.ToString();
            RequestApiResult <WeixinCreateQRCodeResult> createResult = QRCodeApiWrapper.Create(domainContext, createArgs);

            if (createResult.Success == false)
            {
                return(new NormalResult(createResult.Message));
            }

            scenicQRCode.Ticket = createResult.ApiResult.Ticket;
            scenicQRCode.Url    = createResult.ApiResult.Url;

            //下载二维码图片
            FileDownloadAgentArgs downloadAgentArgs = new FileDownloadAgentArgs();

            downloadAgentArgs.Domain = domainContext.Domain.Id;
            downloadAgentArgs.Url    = "https://mp.weixin.qq.com/cgi-bin/showqrcode?ticket=" +
                                       System.Web.HttpUtility.UrlEncode(createResult.ApiResult.Ticket);
            FileDownloadAgentResult downloadAgentResult = _fileService.DownloadAgent(downloadAgentArgs);

            if (downloadAgentResult.Success)
            {
                _log.Write("下载二维码返回", JsonConvert.SerializeObject(downloadAgentResult), TraceEventType.Verbose);
                scenicQRCode.QRCodeImageUrl = _fileService.FileServiceUri + downloadAgentResult.OutputFile;
            }
            else
            {
                return(new NormalResult(downloadAgentResult.Message));
            }

            _dataBase.Insert(scenicQRCode);

            return(new NormalResult());
        }
        public ScenicQRCodeEntity GetScenicQRCode(Guid id)
        {
            ScenicQRCodeEntity scenicQRCodeEntity = new ScenicQRCodeEntity();

            scenicQRCodeEntity.Id = id;

            if (_dataBase.Fill <ScenicQRCodeEntity>(scenicQRCodeEntity))
            {
                return(scenicQRCodeEntity);
            }
            else
            {
                return(null);
            }
        }
        public NormalResult Update(ScenicQRCodeEntity scenicQRCode)
        {
            if (scenicQRCode == null)
            {
                Debug.Assert(false, "scenicQRCode 为空");
                return(new NormalResult("参数错误"));
            }

            SqlStructureBuild sqlBuild = new SqlStructureBuild();

            sqlBuild.Table = "ScenicQRCode";
            sqlBuild.Type  = SqlExpressionType.Update;
            sqlBuild.AddParameter("Id", scenicQRCode.Id, true);
            sqlBuild.AddParameter("Name", scenicQRCode.Name);
            sqlBuild.AddParameter("Remark", scenicQRCode.Remark);
            _dataBase.ExcuteSqlExpression(sqlBuild.GetSqlExpression());

            return(new NormalResult());
        }