Ejemplo n.º 1
0
        /// <summary>
        /// 创建一颗树
        /// </summary>
        /// <param name="treeID">树标识</param>
        /// <param name="treeName">树名称</param>
        /// <param name="leafLimit">叶数量上限</param>
        /// <param name="depthLimit">深度上限</param>
        /// <param name="shareToAll">是否为共享树</param>
        /// <param name="treeType">树类型默认:2=一般树</param>
        public void CreateATree(int treeID, string treeName, int leafLimit, int depthLimit, bool shareToAll, byte treeType = 2)
        {
            var treeEntity = treesRepo.Table.FirstOrDefault(c => c.TreeID == treeID);

            if (treeEntity != null)
            {
                throw new Exception($"已存在Tree={treeID}");
            }
            IIRAPNamespaceSet nameSet = IRAPNamespaceSetFactory.CreatInstance(Enums.NamespaceType.Sys);
            int nameID = nameSet.GetNameID(0, treeName, 30);
            var etree  = new ModelTreeEntity()
            {
                TreeID     = (short)treeID,
                NameID     = nameID,
                LeafLimit  = leafLimit,
                DepthLimit = depthLimit,
                ShareToAll = shareToAll,
                TreeType   = treeType
            };

            treesRepo.Insert(etree);
            treesRepo.SaveChanges();
            return;
        }
Ejemplo n.º 2
0
        /// <summary>
        /// 获取NameID
        /// </summary>
        /// <param name="nameDesc"></param>
        /// <returns></returns>
        private int GetNameID(string nameDesc)
        {
            IIRAPNamespaceSet nameSet = IRAPNamespaceSetFactory.CreatInstance(Enums.NamespaceType.Sys);

            return(nameSet.GetNameID(0, nameDesc, 30));
        }
Ejemplo n.º 3
0
        /// <summary>
        /// 修改参数名称
        /// </summary>
        /// <remarks>本方法主要用于更新参数名称,也可以在此同时更新参数值</remarks>
        /// <param name="communityID">社区标识</param>
        /// <param name="param">参数DTO对象</param>
        /// <param name="sysLogID">系统登录标识</param>
        /// <returns>IRAP系统通用错误对象,如果其中的ErrCode:0-执行成功;非0执行失败</returns>
        public IRAPError Modify(
            int communityID,
            IRAPParameterDTO param,
            long sysLogID)
        {
            IRAPError rlt = new IRAPError();

            rlt =
                GetUserInfoWithSysLogID(
                    communityID,
                    sysLogID,
                    out LoginEntity loginInfo);
            if (rlt.ErrCode != 0)
            {
                return(rlt);
            }

            List <IRAPParameterDTO> iParams =
                GetByParamID(communityID, new int[] { param.ParameterID });

            if (iParams.Count <= 0)
            {
                rlt.ErrCode = 9999;
                rlt.ErrText =
                    $"[{communityID}]社区中未找到ParameterID=[{param.ParameterID}]的参数";
                return(rlt);
            }

            IIRAPNamespaceSet namespaceSet =
                IRAPNamespaceSetFactory.CreatInstance(Enums.NamespaceType.Sys);

            if (param.ParameterNameID == 0)
            {
                rlt =
                    namespaceSet.Add(
                        communityID,
                        param.ParameterName,
                        loginInfo.LanguageID,
                        out int nameID);
                if (rlt.ErrCode != 0)
                {
                    return(rlt);
                }
                else
                {
                    param.ParameterNameID = nameID;
                }
            }

            try
            {
                irapParams.Update(
                    new IRAPParameterEntity()
                {
                    PartitioningKey   = param.PartitioningKey,
                    ParameterID       = param.ParameterID,
                    ParameterNameID   = param.ParameterNameID,
                    ParameterValue    = param.ParameterValue,
                    ParameterValueStr = param.ParameterValueStr,
                    UpdatedBy         = loginInfo.UserCode,
                    TimeUpdated       = DateTime.Now,
                });
                irapParams.SaveChanges();

                rlt.ErrCode = 0;
                rlt.ErrText = "更新参数成功";
            }
            catch (Exception error)
            {
                rlt.ErrCode = 9999;
                if (error.InnerException.InnerException != null)
                {
                    rlt.ErrText =
                        $"更新参数发生异常:" +
                        $"{error.InnerException.InnerException.Message}";
                }
                else
                {
                    rlt.ErrText = $"更新参数发生异常:{error.Message}";
                }
            }

            return(rlt);
        }
Ejemplo n.º 4
0
        /// <summary>
        /// 新增参数
        /// </summary>
        /// <remarks>本方法需要在序列服务器中配置NextParameterID序列</remarks>
        /// <param name="communityID">社区标识</param>
        /// <param name="paramName">参数名称</param>
        /// <param name="paramValue">参数值(整型)</param>
        /// <param name="paramStrValue">参数值(字符串)</param>
        /// <param name="sysLogID">系统登录标识</param>
        /// <param name="paramID">输出参数,新增参数的参数标识</param>
        /// <returns>IRAP系统通用错误对象,如果其中的ErrCode:0-执行成功;非0执行失败</returns>
        public IRAPError Add(
            int communityID,
            string paramName,
            int paramValue,
            string paramStrValue,
            long sysLogID,
            out int paramID)
        {
            IRAPError rlt = new IRAPError();

            paramID = 0;

            LoginEntity loginInfo = null;

            try
            {
                IRAPLog loginSet = new IRAPLog();
                loginInfo = loginSet.GetLogin(communityID, sysLogID);
                if (loginInfo == null)
                {
                    loginInfo = new LoginEntity()
                    {
                        UserCode   = "Unknown",
                        LanguageID = 30,
                    };
                }
            }
            catch (Exception error)
            {
                if (error.InnerException.InnerException != null)
                {
                    rlt.ErrText =
                        $"获取登录信息发生异常:" +
                        $"{error.InnerException.InnerException.Message}";
                }
                else
                {
                    rlt.ErrText = $"获取登录信息发生异常:{error.Message}";
                }
                rlt.ErrCode = 9999;

                return(rlt);
            }

            IIRAPNamespaceSet namespaceSet =
                IRAPNamespaceSetFactory.CreatInstance(Enums.NamespaceType.Sys);

            rlt =
                namespaceSet.Add(
                    communityID,
                    paramName,
                    loginInfo.LanguageID,
                    out int nameID);
            if (rlt.ErrCode != 0)
            {
                return(rlt);
            }

            rlt = RequestParameterID(out paramID);
            if (rlt.ErrCode != 0)
            {
                return(rlt);
            }

            IRAPParameterEntity entity = new IRAPParameterEntity()
            {
                ParameterID       = (byte)paramID,
                ParameterNameID   = nameID,
                PartitioningKey   = communityID * 10000,
                ParameterValue    = paramValue,
                ParameterValueStr = paramStrValue,
                UpdatedBy         = loginInfo.UserCode,
                TimeUpdated       = DateTime.Now,
            };

            try
            {
                irapParams.Insert(entity);
                irapParams.SaveChanges();
                rlt.ErrCode = 0;
                rlt.ErrText = "参数新增成功";
            }
            catch (Exception error)
            {
                rlt.ErrCode = 9999;
                if (error.InnerException.InnerException != null)
                {
                    rlt.ErrText =
                        $"新增参数发生异常:" +
                        $"{error.InnerException.InnerException.Message}";
                }
                else
                {
                    rlt.ErrText = $"新增参数发生异常:{error.Message}";
                }
            }

            return(rlt);
        }