Пример #1
0
        /// <summary>
        /// 通用获取序列号
        /// </summary>
        /// <param name="sequenceName">序列名称</param>
        /// <param name="cnt">申请数量</param>
        /// <returns>返回错误和序列值</returns>
        public static SequenceValueDTO GetSequence(string sequenceName, int cnt)
        {
            SequenceValueDTO res = new SequenceValueDTO();

            if (cnt <= 0)
            {
                res.ErrCode = 99;
                res.ErrText = "申请数量不能为负数或零。";
                return(res);
            }
            if (cnt > 10000)
            {
                res.ErrCode = 98;
                res.ErrText = "申请数量不能太大。";
                return(res);
            }

            try
            {
                long sequenceValue = IRAPSeqClient.GetSequenceNo(seqServerIPAddress, sequenceName, cnt);
                res.ErrCode       = 0;
                res.ErrText       = "申请成功!";
                res.SequenceValue = sequenceValue;
                return(res);
            }
            catch (Exception err)
            {
                res.ErrCode = 9999;
                res.ErrText = $"申请序列发生错误:{err.Message}";
                return(res);
            }
        }
Пример #2
0
        /// <summary>
        /// 在线新增序列
        /// </summary>
        /// <param name="sequenceName">序列名称</param>
        /// <param name="initValue">初始值</param>
        /// <returns>返回1 表示增加成功,返回0 失败(序列已存在)</returns>
        public static SequenceValueDTO AddSequence(string sequenceName, long initValue)
        {
            SequenceValueDTO res = new SequenceValueDTO();

            if (sequenceName == "")
            {
                res.ErrCode = 99;
                res.ErrText = "无效的重置序列";
                return(res);
            }

            try
            {
                long sequenceValue = IRAPSeqClient.AddSequence(seqServerIPAddress, sequenceName, initValue);
                res.ErrCode       = 0;
                res.ErrText       = "增加序列成功!";
                res.SequenceValue = sequenceValue;
                return(res);
            }
            catch (Exception err)
            {
                res.ErrCode = 9999;
                res.ErrText = $"增加序列发生错误:{err.Message}";
                return(res);
            }
        }
Пример #3
0
        /// <summary>
        /// 申请一个参数标识号
        /// </summary>
        /// <param name="paramID">输出参数,申请到的参数标识号</param>
        /// <returns>IRAP系统通用错误对象,如果其中的ErrCode:0-执行成功;非0执行失败</returns>
        private IRAPError RequestParameterID(out int paramID)
        {
            #region 获取 ParameterID
            string           sequenceName = "NextParameterID";
            SequenceValueDTO rtnSequence  =
                IRAPSequence.GetSequence(sequenceName, 1);
            if (rtnSequence.ErrCode != 0)
            {
                string msg = rtnSequence.ErrText;
                Log.InstanceID.WriteMsg <IRAPParameterSet>(Enums.LogType.ERROR, msg);

                paramID = 0;
                return
                    (new IRAPError()
                {
                    ErrCode = 9999,
                    ErrText = rtnSequence.ErrText,
                });
            }
            else
            {
                paramID = (int)rtnSequence.SequenceValue;
                Log.InstanceID.WriteMsg <IRAPParameterSet>(
                    Enums.LogType.DEBUG,
                    $"获得ParameterID={paramID}");
                return
                    (new IRAPError()
                {
                    ErrCode = 0,
                    ErrText = "申请参数标识成功",
                });
            }
            #endregion
        }
Пример #4
0
        /// <summary>
        /// 申请序列号
        /// </summary>
        /// <param name="seqName">序列名称</param>
        /// <param name="cnt">申请数量</param>
        /// <returns></returns>
        public long GetSequenceValue(string seqName, int cnt = 1)
        {
            SequenceValueDTO error = IRAPSequence.GetSequence(seqName, cnt);

            if (error.ErrCode != 0)
            {
                throw new Exception($"申请序列号异常:{error.ErrText}");
            }

            return(error.SequenceValue);
        }
Пример #5
0
        /// <summary>
        /// 新增一个名称,并返回名称标识
        /// </summary>
        /// <param name="communityID">社区标识</param>
        /// <param name="nameDescription">名称</param>
        /// <param name="languageID">语言标识 (默认: 30 简体中文) </param>
        /// <param name="nameID">名称标识(返回)</param>
        /// <returns>名称标识</returns>
        public IRAPError Add(
            int communityID,
            string nameDescription,
            int languageID,
            out int nameID)
        {
            nameID =
                FindNameID(
                    communityID,
                    nameDescription,
                    languageID);
            if (nameID != 0)
            {
                return
                    (new IRAPError()
                {
                    ErrCode = 0,
                    ErrText = "名称已存在,直接返回该名称的标识",
                });
            }
            else
            {
                Repository <BizNameSpaceEntity> names = null;
                try
                {
                    names = GetRepository();
                }
                catch (Exception error)
                {
                    string msg = $"获取[BizNameSpaceEntity]资源库的时候发生错误: {error.Message}";
                    Console.WriteLine(msg);
                    return
                        (new IRAPError()
                    {
                        ErrCode = 9999,
                        ErrText = msg,
                    });
                }

                #region 获取 nameID
                string           sequenceName = "NextNameID";
                SequenceValueDTO rtnSequence  =
                    IRAPSequence.GetSequence(sequenceName, 1);
                if (rtnSequence.ErrCode != 0)
                {
                    string msg = rtnSequence.ErrText;
                    Console.WriteLine(msg);
                    return
                        (new IRAPError()
                    {
                        ErrCode = 9999,
                        ErrText = rtnSequence.ErrText,
                    });
                }
                else
                {
                    nameID = (int)rtnSequence.SequenceValue;
                }
                #endregion

                BizNameSpaceEntity entity =
                    new BizNameSpaceEntity()
                {
                    PartitioningKey = communityID * 10000,
                    LanguageID      = (short)languageID,
                    NameDescription = nameDescription,
                    NameID          = nameID,
                };
                try
                {
                    names.Insert(entity);
                    names.SaveChanges();
                }
                catch (Exception error)
                {
                    string msg = $"保存名称的时候发生错误:{error.Message}";
                    Console.WriteLine(msg);
                    return
                        (new IRAPError()
                    {
                        ErrCode = 9999,
                        ErrText = msg,
                    });
                }

                return
                    (new IRAPError()
                {
                    ErrCode = 0,
                    ErrText = "保存名称成功",
                });
            }
        }