#region Copyright (C) 2019 (OSS开源系列) 公众号:OSSCore /*************************************************************************** *   文件功能描述:全局辅助类 - 序列数字编码生成辅助 * *   创建人: Kevin * 创建人Email:1985088337@qq.com * * *****************************************************************************/ #endregion namespace OSS.Tools.Num; public static class SequenceNumHelper { /// /// 序列实现来源提供者 /// public static Func? SequenceProvider { get; set; } /// /// 通过来源名称获取 序列编码 实例 /// /// /// public static ISequenceNumGenerator GetSequenceNumGenerator(string sourceName) { var sImpl = SequenceProvider?.Invoke(sourceName); return sImpl ?? throw new NotImplementedException("并未发现有效的 ISequenceNumGenerate 接口实现,请检查SequenceProvider是否有正确配置或返回是否正确!"); } /// /// 获取新的序列数(区间) /// /// 序列主键 /// 来源 /// public static async Task New(string sequenceKey, string sourceName = "") { return (await GetSequenceNumGenerator(sourceName).New(sequenceKey, 1)).start; } /// /// 获取新的序列数(区间) /// /// 序列主键 /// 获取个数 /// 来源 /// public static Task<(long start, long end)> New(string sequenceKey, int count, string sourceName = "") { return GetSequenceNumGenerator(sourceName).New(sequenceKey, count); } }