/// <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); } }
/// <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); } }
/// <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 }
/// <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); }
/// <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 = "保存名称成功", }); } }