public async Task StoreDataLocks(List <DataLockEventModel> models, CancellationToken cancellationToken) { try { await repository.SaveDataLockEvents(models, cancellationToken); } catch (Exception e) { if (!e.IsUniqueKeyConstraintException() && !e.IsDeadLockException()) { throw; } logger.LogInfo($"Batch contained a duplicate DataLock. Will store each individually and discard duplicate."); await repository.SaveDataLocksIndividually(models.Select(model => mapper.Map(model)).ToList(), cancellationToken).ConfigureAwait(false); } }