public void TestIfPostgreStyleSortsProperly() { var g1 = MaxGuid(); var g2 = Guid.Empty; // Inject the dates var d = new DateTime(2000, 1, 1, 0, 0, 0, DateTimeKind.Utc); var comb1 = PostgreCombs.Create(g1, d); var comb2 = PostgreCombs.Create(g2, d.AddMilliseconds(1)); Assert.Equal(-1, comb1.CompareTo(comb2)); }
public void TestIfHybridStyleSortsProperly() { var g1 = MaxGuid(); var g2 = Guid.Empty; // Inject the dates var d = new DateTime(2000, 1, 1, 0, 0, 0, DateTimeKind.Utc); System.Data.SqlTypes.SqlGuid comb1 = HybridCombs.Create(g1, d); System.Data.SqlTypes.SqlGuid comb2 = HybridCombs.Create(g2, d.AddMilliseconds(1)); //Console.WriteLine(comb1.ToString()); //Console.WriteLine(comb2.ToString()); Assert.Equal(-1, comb1.CompareTo(comb2)); }
protected override async Task <Shelter> HandleCore(AddCmd cmd) { cmd.ShelterId = _guidProvider.Create(); var result = await _repo.QueryAsync <Shelter>(_repo.Queries.Shelter.Insert, cmd); return(result.FirstOrDefault()); }
/// <summary> /// Ensure that the date provided to be injected into a GUID is the same date we get back from it. /// Allowed for an optional resolution loss in the time. Calculates the delta using ticks to /// avoid floating point drift in using TotalMilliseconds. /// </summary> private void IsReversible(ICombProvider Comb, int ClockDriftAllowedMs) { var dt = DateTime.UtcNow; var comb = Comb.Create(dt); var dtDecoded = Comb.GetTimestamp(comb); var delta = (dtDecoded.Ticks - dt.Ticks) / 10000; Assert.InRange(delta, -ClockDriftAllowedMs, ClockDriftAllowedMs); }
public void TestUtcNoRepeatTimestampProvider() { var g1 = SqlNoRepeatCombs.Create(); var dt1 = SqlNoRepeatCombs.GetTimestamp(g1); var inSequenceCount = 0; for (var i = 0; i < 1000; i++) { var g2 = SqlNoRepeatCombs.Create(); var dt2 = SqlNoRepeatCombs.GetTimestamp(g2); if (dt2 > dt1) { inSequenceCount++; } else { Console.WriteLine($"{dt1:MM/dd/yyyy hh:mm:ss.fff} > {dt2:MM/dd/yyyy hh:mm:ss.fff}"); } dt1 = dt2; } Assert.Equal(1000, inSequenceCount); }
public Guid GenerateID(Guid id) { return(_sqlNoRepeatCombs.Create(id)); }
public static Guid Create() { return(SqlNoRepeatCombs.Create()); }