using System.Linq; using System.Threading; using System.Threading.Tasks; using xCommons.Extensions; using xDataService.Extensions; using xDataService.Interfaces; using xModels.Base; namespace xDataService.Providers { /// /// Default Int Key Generator ... /// /// public class XIntKeyGenerator : XKeyGenerator, IXKeyGenerator where TEntity : XBaseEntity { public override async Task GenerateKey( IXBaseRepository repository, CancellationToken cancellationToken = default ) { // var items = (await repository.GetAllAsync()) .OrderByDescending(nameof(XBaseEntity.Id)); var last = items .FirstOrDefault(); // var result = last.IsNull() ? 1 : last.Id + 1; // return result; } public override bool IsEmpty(int id) { // var result = id <= 0; // return result; } } }