public void insert_same_operation_returns_true() { var idem = new IdempotencyId(Guid.Empty, "mymodel"); _db.IsDuplicateOperation(idem); _db.IsDuplicateOperation(idem).Should().BeTrue(); }
public void different_operation_returns_false() { var idem = new IdempotencyId(Guid.NewGuid(), "mymodel"); _db.IsDuplicateOperation(idem); _db.IsDuplicateOperation(new IdempotencyId(Guid.NewGuid(), "mymodel")).Should().BeFalse(); _db.IsDuplicateOperation(new IdempotencyId(idem.OperationId, "mymodel1")).Should().BeFalse(); }
public static bool IsDuplicateOperation(this DbConnection db, IdempotencyId data) { data.MustNotBeNull(); try { db.Insert(new IdemStore() { Hash = data.GetStorableHash() }); } catch (DbException ex) { if (db.IsUniqueViolation(ex)) { return(true); } throw; } return(false); }
public static async Task <bool> IsDuplicateOperationAsync(this DbConnection db, IdempotencyId data, CancellationToken cancel) { data.MustNotBeNull(); try { await db.InsertAsync(new IdemStore() { Hash = data.GetStorableHash() }, cancel).ConfigureFalse(); } catch (DbException ex) { if (db.IsUniqueViolation(ex)) { return(true); } throw; } return(false); }