public async Task <IHttpActionResult> DeleteSecurePolicyModel([FromUri] string id)
        {
            try
            {
                SecurePolicyModel securePolicyModel = await SecureService.FindByIdAsync(ThreadStaticObject.UserId, id);

                if (securePolicyModel == null)
                {
                    return(NotFound());
                }

                ServiceResultMessage result = await SecureService.RemoveAsync(ThreadStaticObject.UserId, id);

                return(Json(new DjLiveResponse <dynamic>(securePolicyModel)));
            }
            catch (Exception e)
            {
                var errorId = Guid.NewGuid().Str();
                LogHelper.Error(errorId, e);
                return(Json(new DjLiveResponse <dynamic>()
                {
                    ApiCode = ApiCode.UnExceptError, Message = $@"发生未知错误,请联系管理员,错误代码:{errorId}"
                }));
            }
        }
        public async Task <IHttpActionResult> PostSecurePolicyModel([FromBody] SecurePolicyModel model)
        {
            try
            {
                if (!ModelState.IsValid)
                {
                    return(BadRequest(ModelState));
                }
                var id = Guid.NewGuid().Str();
                try
                {
                    ServiceResultMessage result = await SecureService.AddSecurePolicy(ThreadStaticObject.UserId, id, model);

                    if (result.code == ServiceResultCode.Success)
                    {
                        model.Id = id;
                        return(Json(new DjLiveResponse <dynamic>(model)));
                    }
                    return(Json(new DjLiveResponse <dynamic>()
                    {
                        ApiCode = ApiCode.UnExceptError, Message = $@"发生未知错误,请联系管理员,错误代码:{result.ErrorId}"
                    }));
                }
                catch (Exception)
                {
                    if (await SecureService.SecurePolicyModelExists(ThreadStaticObject.UserId, model.Id))
                    {
                        return(Conflict());
                    }
                    throw;
                }
            }
            catch (Exception e)
            {
                var errorId = Guid.NewGuid().Str();
                LogHelper.Error(errorId, e);
                return(Json(new DjLiveResponse <dynamic>()
                {
                    ApiCode = ApiCode.UnExceptError, Message = $@"发生未知错误,请联系管理员,错误代码:{errorId}"
                }));
            }
        }
        public async Task <int> GetSecurePolicysCount(string userId, SecurePolicyModel delta)
        {
            try
            {
                SecurePolicyEntity entityDelta = null;

                if (delta != null)
                {
                    entityDelta = new SecurePolicyEntity()
                    {
                        Name = delta.Name
                    };
                }
                return(await SecureDao.GetSecurePolicysCount(userId, entityDelta));
            }
            catch (Exception e)
            {
                throw;
            }
        }
        public async Task <IHttpActionResult> PutSecurePolicyModel([FromUri] string id, [FromBody] SecurePolicyModel securePolicyModel)
        {
            try
            {
                if (!ModelState.IsValid)
                {
                    return(BadRequest(ModelState));
                }
                if (id != securePolicyModel.Id)
                {
                    return(BadRequest("参数不匹配."));
                }
                try
                {
                    ServiceResultMessage result = await SecureService.UpdateSecurePolicy(ThreadStaticObject.UserId, id, securePolicyModel);

                    if (result.code == ServiceResultCode.Success)
                    {
                        return(Json(new DjLiveResponse <dynamic>(securePolicyModel)));
                    }
                    return(Json(new DjLiveResponse <dynamic>()
                    {
                        ApiCode = ApiCode.UnExceptError, Message = $@"发生未知错误,请联系管理员,错误代码:{result.ErrorId}"
                    }));
                }
                catch (Exception dbE)
                {
                    if (!await SecureService.SecurePolicyModelExists(ThreadStaticObject.UserId, id))
                    {
                        return(NotFound());
                    }
                    throw;
                }
            }
            catch (Exception e)
            {
                var errorId = Guid.NewGuid().Str();
                LogHelper.Error(errorId, e);
                return(Json(new DjLiveResponse <dynamic>()
                {
                    ApiCode = ApiCode.UnExceptError, Message = $@"发生未知错误,请联系管理员,错误代码:{errorId}"
                }));
            }
        }
        public async Task <IHttpActionResult> GetSecurePolicyModels([FromUri] int page, [FromUri] int countPerPage = 10, [FromUri] SecurePolicyModel delta = null)
        {
            try
            {
                int count = await SecureService.GetSecurePolicysCount(ThreadStaticObject.UserId, delta);

                List <SecurePolicyModel> logos = await SecureService.GetSimpleSecurePolicys(ThreadStaticObject.UserId, page, countPerPage, delta);

                var result = new { totalCount = count, models = logos };
                return(Json(new DjLiveResponse <dynamic>(result)));
            }
            catch (Exception e)
            {
                var errorId = Guid.NewGuid().Str();
                LogHelper.Error(errorId, e);
                return(Json(new DjLiveResponse <dynamic>()
                {
                    ApiCode = ApiCode.UnExceptError, Message = $@"发生未知错误,请联系管理员,错误代码:{errorId}"
                }));
            }
        }
        public async Task <List <SecurePolicyModel> > GetSimpleSecurePolicys(string userId, int page, int countPerPage, SecurePolicyModel delta)
        {
            try
            {
                SecurePolicyEntity entityDelta = null;
                if (delta != null)
                {
                    entityDelta = new SecurePolicyEntity()
                    {
                        Name = delta.Name
                    };
                }
                var entities = await SecureDao.GetSecurePolicyEntitys(page, countPerPage, userId, entityDelta);

                return(entities?.Select(item => new SecurePolicyModel()
                {
                    Id = item.Id,
                    Name = item.Name,
                }).ToList());
            }
            catch (Exception e)
            {
                throw;
            }
        }
        public async Task <ServiceResultMessage> AddSecurePolicy(string userId, string id, SecurePolicyModel model)
        {
            try
            {
                var daoresult = await SecureDao.Add2Account(userId, new SecurePolicyEntity()
                {
                    Id               = id,
                    Name             = model.Name,
                    AuthPlayUrl      = model.AuthPlayUrl,
                    AuthPublishUrl   = model.AuthPublishUrl,
                    AuthCloseUrl     = model.AuthCloseUrl,
                    AuthUnPublishUrl = model.AuthUnPublishUrl,
                    AuthStopUrl      = model.AuthStopUrl,
                    AuthConnectUrl   = model.AuthConnectUrl,
                    AuthDvrUrl       = model.AuthDvrUrl,
                    NotifyHlsUrl     = model.NotifyHlsUrl
                });

                return((ServiceResultMessage)ServiceResultBase.DaoResult2ServiceResult(daoresult));
            }
            catch (Exception e)
            {
                LogHelper.Error(e.Message, e);
                return(null);
            }
        }
        //todo:UnFinish
        public async Task <ServiceResultMessage> UpdateSecurePolicy(string userId, string id, SecurePolicyModel model)
        {
            try
            {
                //todo:1.保存设置 2.上传水印图片 3.重新生成配置文件 4.上传配置文件 5.重启SRS服务
                var daoresult = await SecureDao.UpdateSecurePolicyEntity(id, new SecurePolicyEntity()
                {
                    Name             = model?.Name,
                    AuthPlayUrl      = model?.AuthPlayUrl,
                    AuthPublishUrl   = model?.AuthPublishUrl,
                    AuthCloseUrl     = model.AuthCloseUrl,
                    AuthUnPublishUrl = model.AuthUnPublishUrl,
                    AuthStopUrl      = model.AuthStopUrl,
                    AuthConnectUrl   = model.AuthConnectUrl,
                    AuthDvrUrl       = model.AuthDvrUrl,
                    NotifyHlsUrl     = model.NotifyHlsUrl
                });

                return((ServiceResultMessage)ServiceResultBase.DaoResult2ServiceResult(daoresult));
            }
            catch (Exception e)
            {
                LogHelper.Error(e.Message, e);
                return(null);
            }
        }