using System; using System.Threading; using System.Threading.Tasks; using xCommons.Extensions; using xDataService.Interfaces; using xModels.Base; namespace xDataService.Providers { /// /// Default Guid Key Generator ... /// /// public class XStringKeyGenerator : XKeyGenerator, IXKeyGenerator where TEntity : XBaseEntity { private readonly IXSequentialGuid sequentialGuid; public XStringKeyGenerator(IXSequentialGuid sequentialGuid = null) { this.sequentialGuid = sequentialGuid; } public override async Task GenerateKey( IXBaseRepository repository, CancellationToken cancellationToken = default ) { // await Task.CompletedTask; // if (sequentialGuid.IsNull()) { return Guid.NewGuid().ToString(); } else { return sequentialGuid.Next().ToString(); } } public override bool IsEmpty(string id) { return id.IsNullOrEmpty(); } } }