public async Task <Provider> AddProvider(string name) { await ProviderNameValidator.ValidateAndThrowAsync(name); var now = DateTimeOffset.Now; var provider = new Provider { Name = name, Enabled = true, Created = now, Updated = now, Tokens = new List <string>() }; await using var transaction = await QuadCommentsDbContext.Database.BeginTransactionAsync(); try { await QuadCommentsDbContext.Providers.AddAsync(provider); await QuadCommentsDbContext.SaveChangesAsync(); await transaction.CommitAsync(); } catch { await transaction.RollbackAsync(); throw; } return(provider); }
public async Task <Provider> RenameProvider(Guid providerId, string name) { await ProviderNameValidator.ValidateAndThrowAsync(name); await using var transaction = await QuadCommentsDbContext.Database.BeginTransactionAsync(); try { var provider = await QuadCommentsDbContext .Providers .FirstOrDefaultAsync(x => x.Id == providerId); if (provider == null) { throw new ArgumentException(providerId.ToString(), nameof(providerId)); } provider.Name = name; provider.Updated = DateTimeOffset.Now; await QuadCommentsDbContext.SaveChangesAsync(); await transaction.CommitAsync(); return(provider); } catch { await transaction.RollbackAsync(); throw; } }