using System; using System.Threading.Tasks; using xCommons.Extensions; using xDataService.Interfaces; using xModels.Base; namespace xDataService.Providers { public class XGuidKeyGenerator : IXKeyGenerator where TEntity : XBaseEntity { private readonly IXSequentialGuid sequentialGuid; public XGuidKeyGenerator ( IXSequentialGuid sequentialGuid = null ) { this.sequentialGuid = sequentialGuid; } public async Task GenerateKey ( IXBaseRepository repository ) { // await Task.CompletedTask; // // Check if provided SequentialGuid ... if (sequentialGuid.IsNull ()) { return Guid.NewGuid (); } else { return sequentialGuid.Next (); } } public bool IsEmpty (Guid id) { // var result = id.IsNull () || id.IsDefaultGuid (); // return result; } } }