public async Task DeleteCertificateAsync(int id, string userId, CancellationToken cancellationToken = default) { var certificate = await _repository.GetByUserIdAsync(id, userId, cancellationToken); await _repository.DeleteAsync(certificate, cancellationToken); _cacheService.SetList(userId); }
public async Task <IActionResult> DeleteCertificate(long id) { if (!await certificateRepository.Exists(id)) { return(NotFound(new List <string>() { $"Certificate with ID = {id} not found" })); } await certificateRepository.DeleteAsync(id); return(NoContent()); }
// Use for Coyote. /*********************************/ public async Task GetAndUpdateAtTheSameTime() { _context.Certificates.AddRange(CertificateBuilder.GetDefaultValues()); _context.SaveChanges(); _context.ChangeTracker.Clear(); var certificate = await _context.Certificates.AsNoTracking().FirstOrDefaultAsync(); // This code throws an DbUpdateConcurrencyException, // so we add a check (try-catch) to the "Edit" methods of the controllers. var deleteResult = _repository.DeleteAsync(certificate); var updateResult = _repository.UpdateAsync(certificate); await Task.WhenAll(deleteResult, updateResult); }