31 lines
917 B
C#
31 lines
917 B
C#
using System;
|
|
using System.Threading.Tasks;
|
|
using xCommons.Extensions;
|
|
using xDataService.Interfaces;
|
|
using xModels.Base;
|
|
|
|
namespace xDataService.Providers {
|
|
public class XStringKeyGenerator : IXKeyGenerator<XBaseEntity<string>, string> {
|
|
private readonly IXSequentialGuid sequentialGuid;
|
|
|
|
public XStringKeyGenerator (IXSequentialGuid sequentialGuid = null) {
|
|
this.sequentialGuid = sequentialGuid;
|
|
}
|
|
|
|
public async Task<string> GenerateKey (IXBaseRepository<XBaseEntity<string>, string> repository) {
|
|
//
|
|
await Task.CompletedTask;
|
|
|
|
//
|
|
if (sequentialGuid.IsNull ()) {
|
|
return Guid.NewGuid ().ToString ();
|
|
} else {
|
|
return sequentialGuid.Next ().ToString ();
|
|
}
|
|
}
|
|
|
|
public bool IsEmpty (string id) {
|
|
return id.IsNullOrEmpty ();
|
|
}
|
|
}
|
|
} |