예제 #1
0
        /// <summary>
        /// 查询当前机构配置信息
        /// </summary>
        /// <param name="message"></param>
        /// <returns></returns>
        public dynamic GetPolyvInfoModel(int System_Station_ID)
        {
            //查询当前机构是否使用自己的保利威视配置
            PolyvInfoModel     Model        = SqlMapper.QueryForObject <PolyvInfoModel>("GetPolyvInfo", new { System_Station_ID = System_Station_ID });
            W_PolyvInfo_Detail Model_Detail = SqlMapper.QueryForObject <W_PolyvInfo_Detail>("GetPolyvInfo_Detail", new { System_Station_ID = System_Station_ID });

            if (Model_Detail != null)
            {
                //是系统配置
                if (Model == null)
                {
                    Model             = new PolyvInfoModel();
                    Model.PolyvSource = 1;//系统
                }
                else
                {
                    Model.PolyvSource = 2;//自定义
                }
                Model.PolyvInfo_ID = Model_Detail.PolyvInfo_ID;
                Model.Valid        = Model_Detail.Valid;
                Model.cataid       = Model_Detail.cataid == null ? "" : Model_Detail.cataid;
            }

            return(Model);
        }
예제 #2
0
        /// <summary>
        /// 创建目录并保存 hx add 20180105
        /// </summary>
        /// <param name="Message">创建消息</param>
        /// <param name="PolyvInfo_ID">主表ID</param>
        /// <param name="cataid">分类cataid</param>
        /// <param name="Valid">禁用/启用</param>
        /// <param name="PolyvSource"></param>
        /// <param name="IsAdd">是添加还是修改</param>
        /// <returns></returns>
        public dynamic SavePolyvDetail(bool isAdd, int Station_ID, int PolyvInfo_ID, string cataid, int Valid, int PolyvSource)
        {
            bool save = false;

            W_PolyvInfo_Detail PolyvInfoModel_Detail = new W_PolyvInfo_Detail();

            //明细表添加数据
            PolyvInfoModel_Detail.System_Station_ID = Station_ID;
            PolyvInfoModel_Detail.PolyvInfo_ID      = PolyvInfo_ID;
            PolyvInfoModel_Detail.cataid            = cataid;
            PolyvInfoModel_Detail.Valid             = Valid;
            try
            {
                SqlMapper.BeginTransaction();//开启事务

                if (isAdd)
                {
                    //添加明细数据
                    Orm.Insert(PolyvInfoModel_Detail);

                    //修改配置表账号类型
                    if (SqlMapper.Update("UpdatePolyvinfoType", new { PolyvinfoType = PolyvSource, System_Station_ID = Station_ID }) > 0)
                    {
                        save = true;
                    }
                }
                else
                {
                    //修改明细数据
                    if (SqlMapper.Update("UpdatePolyvInfoDetail", new { PolyvInfo_ID = PolyvInfo_ID, cataid = cataid, Valid = Valid, System_Station_ID = Station_ID }) > 0)
                    {
                        if (SqlMapper.Update("UpdatePolyvinfoType", new { PolyvinfoType = PolyvSource, System_Station_ID = Station_ID }) > 0)
                        {
                            save = true;
                        }
                    }
                    else
                    {
                        throw new ApiException("设置不成功,明细修改异常!");
                    }
                }

                SqlMapper.CommitTransaction();
            }
            catch (Exception ex)
            {
                SqlMapper.RollBackTransaction();
                throw new ApiException(ex.Message);
            }
            finally
            {
                //SqlMapper.CloseConnection();
            }

            return(save);
        }
예제 #3
0
        /// <summary>
        /// 保利威视配置
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public bool SavePolyvInfo(PolyvInfoModel model)
        {
            if (model.System_Station_ID == 0)
            {
                throw new ApiException("机构ID不存在!");
            }

            //自主类型  参数判断
            if (model.PolyvSource == 1)
            {
                if (string.IsNullOrEmpty(model.userid))
                {
                    throw new ApiException("userid不能为空!");
                }

                if (string.IsNullOrEmpty(model.writetoken))
                {
                    throw new ApiException("writetoken不能为空!");
                }

                if (string.IsNullOrEmpty(model.readtoken))
                {
                    throw new ApiException("readtoken不能为空!");
                }

                if (string.IsNullOrEmpty(model.secretkey))
                {
                    throw new ApiException("secretkey不能为空!");
                }

                string refMessage = "";
                //测试接口是否可用、参数是否正确
                if (!CheckParameter(model.userid, model.writetoken, model.readtoken, model.secretkey, ref refMessage))
                {
                    throw new ApiException(refMessage);
                }
            }

            H_Station station     = Orm.Single <H_Station>(x => x.ID == model.System_Station_ID);
            string    StationName = station != null ? station.Name : "";

            if (model.PolyvSource == 1)
            {
                model.Name = StationName; //自主的就读机构的名称
            }
            string Message = string.Empty;

            //是否第一次设置
            W_PolyvInfo_Detail polyvDetail = Orm.Single <W_PolyvInfo_Detail>(x => x.System_Station_ID == model.System_Station_ID);

            if (polyvDetail == null)        //第一次设置
            {
                if (model.PolyvSource == 0) //系统默认
                {
                    #region
                    W_PolyvInfo Model = Orm.Single <W_PolyvInfo>(x => x.System_Station_ID == 0); //读主表默认
                    if (model == null)
                    {
                        throw new ApiException("未找到对应的默认配置数据!");
                    }

                    //调用接口创建目录
                    string cataid = CreateDirectory(Model, StationName, out Message);
                    //创建目录失败
                    if (string.IsNullOrEmpty(cataid))
                    {
                        throw new ApiException("创建目录失败!" + Message);
                    }
                    else
                    {
                        //添加详细
                        return(SavePolyvDetail(true, model.System_Station_ID, Model.ID, cataid, model.Valid, model.PolyvSource));
                    }
                    #endregion
                }
                else if (model.PolyvSource == 1) //自主类型
                {
                    #region
                    W_PolyvInfo Model = Orm.Single <W_PolyvInfo>(x => x.System_Station_ID == model.System_Station_ID); //读主表配置
                    if (Model == null)                                                                                 //主表为空
                    {
                        W_PolyvInfo polyv = new W_PolyvInfo();
                        polyv.System_Station_ID = model.System_Station_ID;
                        polyv.Name       = model.Name;
                        polyv.userid     = model.userid;
                        polyv.writetoken = model.writetoken;
                        polyv.readtoken  = model.readtoken;
                        polyv.secretkey  = model.secretkey;
                        polyv.AddTime    = DateTime.Now;
                        int polyv_id = (int)Orm.Insert(polyv, true);
                        if (polyv_id > 0)
                        {
                            //调用接口创建目录
                            string cataid = CreateDirectory(polyv, StationName, out Message);

                            //创建目录失败
                            if (string.IsNullOrEmpty(cataid))
                            {
                                throw new ApiException("创建目录失败!" + Message);
                            }
                            else
                            {
                                //添加详细
                                return(SavePolyvDetail(true, polyv.System_Station_ID, polyv_id, cataid, model.Valid, model.PolyvSource));
                            }
                        }
                        else
                        {
                            throw new ApiException("设置不成功,设置主表添加异常!");
                        }
                    }
                    else
                    {
                        //调用接口创建目录
                        string cataid = CreateDirectory(model, StationName, out Message);

                        //创建目录失败
                        if (string.IsNullOrEmpty(cataid))
                        {
                            throw new ApiException("创建目录失败!" + Message);
                        }
                        else
                        {
                            //直接修改明细
                            return(SavePolyvDetail(true, model.System_Station_ID, Model.ID, cataid, model.Valid, model.PolyvSource));
                        }
                    }
                    #endregion
                }
                else
                {
                    throw new ApiException("设置不成功,账号类型不正确!");
                }
            }
            else //不是第一次设置
            {
                if (model.PolyvSource == 0) //系统默认
                {
                    #region
                    W_PolyvInfo Model = Orm.Single <W_PolyvInfo>(x => x.System_Station_ID == 0); //读主表默认
                    if (model == null)
                    {
                        throw new ApiException("未找到对应的默认配置数据!");
                    }

                    //读详细表
                    W_PolyvInfo_Detail D_Model = Orm.Single <W_PolyvInfo_Detail>(x => x.System_Station_ID == model.System_Station_ID);
                    if (D_Model != null)
                    {
                        //不创建目录 直接修改详细
                        return(SavePolyvDetail(false, D_Model.System_Station_ID, Model.ID, D_Model.cataid, model.Valid, model.PolyvSource));
                    }
                    else
                    {
                        throw new ApiException("未找到对应的明细配置数据!");
                    }
                    #endregion
                }
                else if (model.PolyvSource == 1) //自主类型
                {
                    #region
                    W_PolyvInfo Model = Orm.Single <W_PolyvInfo>(x => x.System_Station_ID == model.System_Station_ID); //读主表配置
                    if (Model == null)                                                                                 //主表为空
                    {
                        W_PolyvInfo polyv = new W_PolyvInfo();
                        polyv.System_Station_ID = model.System_Station_ID;
                        polyv.Name       = model.Name;
                        polyv.userid     = model.userid;
                        polyv.writetoken = model.writetoken;
                        polyv.readtoken  = model.readtoken;
                        polyv.secretkey  = model.secretkey;
                        polyv.AddTime    = DateTime.Now;
                        int polyv_id = (int)Orm.Insert(polyv, true);

                        if (polyv_id > 0)
                        {
                            //调用接口创建目录
                            string cataid = CreateDirectory(polyv, StationName, out Message);

                            //创建目录失败
                            if (string.IsNullOrEmpty(cataid))
                            {
                                throw new ApiException("创建目录失败!" + Message);
                            }
                            else
                            {
                                //修改详细
                                return(SavePolyvDetail(false, polyv.System_Station_ID, polyv_id, cataid, model.Valid, model.PolyvSource));
                            }
                        }
                        else
                        {
                            throw new ApiException("设置不成功,设置主表添加异常!");
                        }
                    }
                    else //主表不为空,修改
                    {
                        //数据是否修改
                        bool HasChange = false;
                        if (model.userid != Model.userid)
                        {
                            HasChange = true;
                        }
                        if (model.writetoken != Model.writetoken)
                        {
                            HasChange = true;
                        }
                        if (model.readtoken != Model.readtoken)
                        {
                            HasChange = true;
                        }
                        if (model.secretkey != Model.secretkey)
                        {
                            HasChange = true;
                        }

                        W_PolyvInfo_Detail D_Model = Orm.Single <W_PolyvInfo_Detail>(x => x.System_Station_ID == model.System_Station_ID); //读详细表

                        if (HasChange)                                                                                                     //如果数据有变更
                        {
                            //调用接口创建目录
                            string cataid = CreateDirectory(model, StationName, out Message);

                            //创建目录失败
                            if (string.IsNullOrEmpty(cataid))
                            {
                                throw new ApiException("创建目录失败!" + Message);
                            }
                            else
                            {
                                //修改主表
                                if (SqlMapper.Update("UpdatePolyvInfo", new { Name = model.Name, userid = model.userid, writetoken = model.writetoken, readtoken = model.readtoken, secretkey = model.secretkey, System_Station_ID = model.System_Station_ID, ID = Model.ID }) > 0)
                                {
                                    //修改详细
                                    return(SavePolyvDetail(false, D_Model.System_Station_ID, Model.ID, cataid, model.Valid, model.PolyvSource));
                                }
                                else
                                {
                                    throw new ApiException("主表修改失败!" + Message);
                                }
                            }
                        }
                        else
                        {
                            //直接修改明细
                            return(SavePolyvDetail(false, D_Model.System_Station_ID, Model.ID, D_Model.cataid, model.Valid, model.PolyvSource));
                        }
                    }
                    #endregion
                }
                else
                {
                    throw new ApiException("设置不成功,账号类型不正确!");
                }
            }
        }