feat: add ConfigureAwait(false) to all await calls

pull/2500/head
Javier Campos 6 years ago
parent 4b2830d96f
commit 4154c82138

@ -27,14 +27,13 @@ namespace Volo.Abp.TenantManagement
public virtual async Task<TenantDto> GetAsync(Guid id)
{
return ObjectMapper.Map<Tenant, TenantDto>(
await TenantRepository.GetAsync(id)
);
await TenantRepository.GetAsync(id).ConfigureAwait(false));
}
public virtual async Task<PagedResultDto<TenantDto>> GetListAsync(GetTenantsInput input)
{
var count = await TenantRepository.GetCountAsync(input.Filter);
var list = await TenantRepository.GetListAsync(input.Sorting, input.MaxResultCount, input.SkipCount, input.Filter);
var count = await TenantRepository.GetCountAsync(input.Filter).ConfigureAwait(false);
var list = await TenantRepository.GetListAsync(input.Sorting, input.MaxResultCount, input.SkipCount, input.Filter).ConfigureAwait(false);
return new PagedResultDto<TenantDto>(
count,
@ -45,15 +44,15 @@ namespace Volo.Abp.TenantManagement
[Authorize(TenantManagementPermissions.Tenants.Create)]
public virtual async Task<TenantDto> CreateAsync(TenantCreateDto input)
{
var tenant = await TenantManager.CreateAsync(input.Name);
await TenantRepository.InsertAsync(tenant);
var tenant = await TenantManager.CreateAsync(input.Name).ConfigureAwait(false);
await TenantRepository.InsertAsync(tenant).ConfigureAwait(false);
using (CurrentTenant.Change(tenant.Id, tenant.Name))
{
//TODO: Handle database creation?
//TODO: Set admin email & password..?
await DataSeeder.SeedAsync(tenant.Id);
await DataSeeder.SeedAsync(tenant.Id).ConfigureAwait(false);
}
return ObjectMapper.Map<Tenant, TenantDto>(tenant);
@ -62,45 +61,45 @@ namespace Volo.Abp.TenantManagement
[Authorize(TenantManagementPermissions.Tenants.Update)]
public virtual async Task<TenantDto> UpdateAsync(Guid id, TenantUpdateDto input)
{
var tenant = await TenantRepository.GetAsync(id);
await TenantManager.ChangeNameAsync(tenant, input.Name);
await TenantRepository.UpdateAsync(tenant);
var tenant = await TenantRepository.GetAsync(id).ConfigureAwait(false);
await TenantManager.ChangeNameAsync(tenant, input.Name).ConfigureAwait(false);
await TenantRepository.UpdateAsync(tenant).ConfigureAwait(false);
return ObjectMapper.Map<Tenant, TenantDto>(tenant);
}
[Authorize(TenantManagementPermissions.Tenants.Delete)]
public virtual async Task DeleteAsync(Guid id)
{
var tenant = await TenantRepository.FindAsync(id);
var tenant = await TenantRepository.FindAsync(id).ConfigureAwait(false);
if (tenant == null)
{
return;
}
await TenantRepository.DeleteAsync(tenant);
await TenantRepository.DeleteAsync(tenant).ConfigureAwait(false);
}
[Authorize(TenantManagementPermissions.Tenants.ManageConnectionStrings)]
public virtual async Task<string> GetDefaultConnectionStringAsync(Guid id)
{
var tenant = await TenantRepository.GetAsync(id);
var tenant = await TenantRepository.GetAsync(id).ConfigureAwait(false);
return tenant?.FindDefaultConnectionString();
}
[Authorize(TenantManagementPermissions.Tenants.ManageConnectionStrings)]
public virtual async Task UpdateDefaultConnectionStringAsync(Guid id, string defaultConnectionString)
{
var tenant = await TenantRepository.GetAsync(id);
var tenant = await TenantRepository.GetAsync(id).ConfigureAwait(false);
tenant.SetDefaultConnectionString(defaultConnectionString);
await TenantRepository.UpdateAsync(tenant);
await TenantRepository.UpdateAsync(tenant).ConfigureAwait(false);
}
[Authorize(TenantManagementPermissions.Tenants.ManageConnectionStrings)]
public virtual async Task DeleteDefaultConnectionStringAsync(Guid id)
{
var tenant = await TenantRepository.GetAsync(id);
var tenant = await TenantRepository.GetAsync(id).ConfigureAwait(false);
tenant.RemoveDefaultConnectionString();
await TenantRepository.UpdateAsync(tenant);
await TenantRepository.UpdateAsync(tenant).ConfigureAwait(false);
}
}
}

@ -19,7 +19,7 @@ namespace Volo.Abp.TenantManagement
{
Check.NotNull(name, nameof(name));
await ValidateNameAsync(name);
await ValidateNameAsync(name).ConfigureAwait(false);
return new Tenant(GuidGenerator.Create(), name);
}
@ -28,13 +28,13 @@ namespace Volo.Abp.TenantManagement
Check.NotNull(tenant, nameof(tenant));
Check.NotNull(name, nameof(name));
await ValidateNameAsync(name, tenant.Id);
await ValidateNameAsync(name, tenant.Id).ConfigureAwait(false);
tenant.SetName(name);
}
protected virtual async Task ValidateNameAsync(string name, Guid? expectedId = null)
{
var tenant = await _tenantRepository.FindByNameAsync(name);
var tenant = await _tenantRepository.FindByNameAsync(name).ConfigureAwait(false);
if (tenant != null && tenant.Id != expectedId)
{
throw new UserFriendlyException("Duplicate tenancy name: " + name); //TODO: A domain exception would be better..?

@ -28,7 +28,7 @@ namespace Volo.Abp.TenantManagement
{
using (_currentTenant.Change(null)) //TODO: No need this if we can implement to define host side (or tenant-independent) entities!
{
var tenant = await _tenantRepository.FindByNameAsync(name);
var tenant = await _tenantRepository.FindByNameAsync(name).ConfigureAwait(false);
if (tenant == null)
{
return null;
@ -42,7 +42,7 @@ namespace Volo.Abp.TenantManagement
{
using (_currentTenant.Change(null)) //TODO: No need this if we can implement to define host side (or tenant-independent) entities!
{
var tenant = await _tenantRepository.FindAsync(id);
var tenant = await _tenantRepository.FindAsync(id).ConfigureAwait(false);
if (tenant == null)
{
return null;

@ -25,7 +25,7 @@ namespace Volo.Abp.TenantManagement.EntityFrameworkCore
{
return await DbSet
.IncludeDetails(includeDetails)
.FirstOrDefaultAsync(t => t.Name == name, GetCancellationToken(cancellationToken));
.FirstOrDefaultAsync(t => t.Name == name, GetCancellationToken(cancellationToken)).ConfigureAwait(false);
}
public Tenant FindByName(string name, bool includeDetails = true)
@ -59,7 +59,7 @@ namespace Volo.Abp.TenantManagement.EntityFrameworkCore
)
.OrderBy(sorting ?? nameof(Tenant.Name))
.PageBy(skipCount, maxResultCount)
.ToListAsync(GetCancellationToken(cancellationToken));
.ToListAsync(GetCancellationToken(cancellationToken)).ConfigureAwait(false);
}
public async Task<long> GetCountAsync(string filter = null, CancellationToken cancellationToken = default)

@ -25,7 +25,7 @@ namespace Volo.Abp.TenantManagement.MongoDB
CancellationToken cancellationToken = default)
{
return await GetMongoQueryable()
.FirstOrDefaultAsync(t => t.Name == name, GetCancellationToken(cancellationToken));
.FirstOrDefaultAsync(t => t.Name == name, GetCancellationToken(cancellationToken)).ConfigureAwait(false);
}
public Tenant FindByName(string name, bool includeDetails = true)
@ -57,7 +57,7 @@ namespace Volo.Abp.TenantManagement.MongoDB
.OrderBy(sorting ?? nameof(Tenant.Name))
.As<IMongoQueryable<Tenant>>()
.PageBy<Tenant, IMongoQueryable<Tenant>>(skipCount, maxResultCount)
.ToListAsync(GetCancellationToken(cancellationToken));
.ToListAsync(GetCancellationToken(cancellationToken)).ConfigureAwait(false);
}
public async Task<long> GetCountAsync(string filter = null, CancellationToken cancellationToken = default)

@ -24,7 +24,7 @@ namespace Volo.Abp.TenantManagement.Web.Navigation
var tenantManagementMenuItem = new ApplicationMenuItem(TenantManagementMenuNames.GroupName, l["Menu:TenantManagement"], icon: "fa fa-users");
administrationMenu.AddItem(tenantManagementMenuItem);
if (await authorizationService.IsGrantedAsync(TenantManagementPermissions.Tenants.Default))
if (await authorizationService.IsGrantedAsync(TenantManagementPermissions.Tenants.Default).ConfigureAwait(false))
{
tenantManagementMenuItem.AddItem(new ApplicationMenuItem(TenantManagementMenuNames.Tenants, l["Tenants"], url: "/TenantManagement/Tenants"));
}

@ -20,7 +20,7 @@ namespace Volo.Abp.TenantManagement.Web.Pages.TenantManagement.Tenants
public async Task OnGetAsync(Guid id)
{
var defaultConnectionString = await _tenantAppService.GetDefaultConnectionStringAsync(id);
var defaultConnectionString = await _tenantAppService.GetDefaultConnectionStringAsync(id).ConfigureAwait(false);
Tenant = new TenantInfoModel
{
Id = id,
@ -35,11 +35,11 @@ namespace Volo.Abp.TenantManagement.Web.Pages.TenantManagement.Tenants
if (Tenant.UseSharedDatabase || Tenant.DefaultConnectionString.IsNullOrWhiteSpace())
{
await _tenantAppService.DeleteDefaultConnectionStringAsync(Tenant.Id);
await _tenantAppService.DeleteDefaultConnectionStringAsync(Tenant.Id).ConfigureAwait(false);
}
else
{
await _tenantAppService.UpdateDefaultConnectionStringAsync(Tenant.Id, Tenant.DefaultConnectionString);
await _tenantAppService.UpdateDefaultConnectionStringAsync(Tenant.Id, Tenant.DefaultConnectionString).ConfigureAwait(false);
}
return NoContent();

@ -22,7 +22,7 @@ namespace Volo.Abp.TenantManagement.Web.Pages.TenantManagement.Tenants
ValidateModel();
var input = ObjectMapper.Map<TenantInfoModel, TenantCreateDto>(Tenant);
await _tenantAppService.CreateAsync(input);
await _tenantAppService.CreateAsync(input).ConfigureAwait(false);
return NoContent();
}

@ -22,7 +22,7 @@ namespace Volo.Abp.TenantManagement.Web.Pages.TenantManagement.Tenants
{
Tenant = ObjectMapper.Map<TenantDto, TenantInfoModel>(
await _tenantAppService.GetAsync(id)
);
.ConfigureAwait(false));
}
public async Task<IActionResult> OnPostAsync()
@ -30,7 +30,7 @@ namespace Volo.Abp.TenantManagement.Web.Pages.TenantManagement.Tenants
ValidateModel();
var input = ObjectMapper.Map<TenantInfoModel, TenantUpdateDto>(Tenant);
await _tenantAppService.UpdateAsync(Tenant.Id, input);
await _tenantAppService.UpdateAsync(Tenant.Id, input).ConfigureAwait(false);
return NoContent();
}

@ -20,14 +20,14 @@ namespace Volo.Abp.TenantManagement
public async Task GetAsync()
{
var tenantInDb = UsingDbContext(dbContext => dbContext.Tenants.First());
var tenant = await _tenantAppService.GetAsync(tenantInDb.Id);
var tenant = await _tenantAppService.GetAsync(tenantInDb.Id).ConfigureAwait(false);
tenant.Name.ShouldBe(tenantInDb.Name);
}
[Fact]
public async Task GetListAsync()
{
var result = await _tenantAppService.GetListAsync(new GetTenantsInput());
var result = await _tenantAppService.GetListAsync(new GetTenantsInput()).ConfigureAwait(false);
result.TotalCount.ShouldBeGreaterThan(0);
result.Items.ShouldContain(t => t.Name == "acme");
result.Items.ShouldContain(t => t.Name == "volosoft");
@ -36,7 +36,7 @@ namespace Volo.Abp.TenantManagement
[Fact]
public async Task GetListAsync_Filtered()
{
var result = await _tenantAppService.GetListAsync(new GetTenantsInput { Filter = "volo" });
var result = await _tenantAppService.GetListAsync(new GetTenantsInput { Filter = "volo" }).ConfigureAwait(false);
result.TotalCount.ShouldBeGreaterThan(0);
result.Items.ShouldNotContain(t => t.Name == "acme");
result.Items.ShouldContain(t => t.Name == "volosoft");
@ -45,7 +45,7 @@ namespace Volo.Abp.TenantManagement
[Fact]
public async Task GetListAsync_Sorted_Descending_By_Name()
{
var result = await _tenantAppService.GetListAsync(new GetTenantsInput { Sorting = "Name DESC" });
var result = await _tenantAppService.GetListAsync(new GetTenantsInput { Sorting = "Name DESC" }).ConfigureAwait(false);
result.TotalCount.ShouldBeGreaterThan(0);
var tenants = result.Items.ToList();
@ -59,7 +59,7 @@ namespace Volo.Abp.TenantManagement
public async Task CreateAsync()
{
var tenancyName = Guid.NewGuid().ToString("N").ToLowerInvariant();
var tenant = await _tenantAppService.CreateAsync(new TenantCreateDto { Name = tenancyName });
var tenant = await _tenantAppService.CreateAsync(new TenantCreateDto { Name = tenancyName }).ConfigureAwait(false);
tenant.Name.ShouldBe(tenancyName);
tenant.Id.ShouldNotBe(default(Guid));
}
@ -69,8 +69,8 @@ namespace Volo.Abp.TenantManagement
{
await Assert.ThrowsAsync<UserFriendlyException>(async () =>
{
await _tenantAppService.CreateAsync(new TenantCreateDto { Name = "acme" });
});
await _tenantAppService.CreateAsync(new TenantCreateDto { Name = "acme" }).ConfigureAwait(false);
}).ConfigureAwait(false);
}
[Fact]
@ -78,7 +78,7 @@ namespace Volo.Abp.TenantManagement
{
var acme = UsingDbContext(dbContext => dbContext.Tenants.Single(t => t.Name == "acme"));
var result = await _tenantAppService.UpdateAsync(acme.Id, new TenantUpdateDto { Name = "acme-renamed" });
var result = await _tenantAppService.UpdateAsync(acme.Id, new TenantUpdateDto { Name = "acme-renamed" }).ConfigureAwait(false);
result.Id.ShouldBe(acme.Id);
result.Name.ShouldBe("acme-renamed");
@ -93,8 +93,8 @@ namespace Volo.Abp.TenantManagement
await Assert.ThrowsAsync<UserFriendlyException>(async () =>
{
await _tenantAppService.UpdateAsync(acme.Id, new TenantUpdateDto { Name = "volosoft" });
});
await _tenantAppService.UpdateAsync(acme.Id, new TenantUpdateDto { Name = "volosoft" }).ConfigureAwait(false);
}).ConfigureAwait(false);
}
[Fact]
@ -102,7 +102,7 @@ namespace Volo.Abp.TenantManagement
{
var acme = UsingDbContext(dbContext => dbContext.Tenants.Single(t => t.Name == "acme"));
await _tenantAppService.DeleteAsync(acme.Id);
await _tenantAppService.DeleteAsync(acme.Id).ConfigureAwait(false);
UsingDbContext(dbContext =>
{

@ -19,23 +19,23 @@ namespace Volo.Abp.TenantManagement
[Fact]
public async Task CreateAsync()
{
var tenant = await _tenantManager.CreateAsync("Test");
var tenant = await _tenantManager.CreateAsync("Test").ConfigureAwait(false);
tenant.Name.ShouldBe("Test");
}
[Fact]
public async Task Create_Tenant_Name_Can_Not_Duplicate()
{
await Assert.ThrowsAsync<UserFriendlyException>(async () => await _tenantManager.CreateAsync("volosoft"));
await Assert.ThrowsAsync<UserFriendlyException>(async () => await _tenantManager.CreateAsync("volosoft").ConfigureAwait(false)).ConfigureAwait(false);
}
[Fact]
public async Task ChangeNameAsync()
{
var tenant = await _tenantRepository.FindByNameAsync("volosoft");
var tenant = await _tenantRepository.FindByNameAsync("volosoft").ConfigureAwait(false);
tenant.ShouldNotBeNull();
await _tenantManager.ChangeNameAsync(tenant, "newVolosoft");
await _tenantManager.ChangeNameAsync(tenant, "newVolosoft").ConfigureAwait(false);
tenant.Name.ShouldBe("newVolosoft");
}
@ -43,10 +43,10 @@ namespace Volo.Abp.TenantManagement
[Fact]
public async Task ChangeName_Tenant_Name_Can_Not_Duplicate()
{
var tenant = await _tenantRepository.FindByNameAsync("acme");
var tenant = await _tenantRepository.FindByNameAsync("acme").ConfigureAwait(false);
tenant.ShouldNotBeNull();
await Assert.ThrowsAsync<UserFriendlyException>(async () => await _tenantManager.ChangeNameAsync(tenant, "volosoft"));
await Assert.ThrowsAsync<UserFriendlyException>(async () => await _tenantManager.ChangeNameAsync(tenant, "volosoft").ConfigureAwait(false)).ConfigureAwait(false);
}
}
}

@ -19,7 +19,7 @@ namespace Volo.Abp.TenantManagement
[Fact]
public async Task FindAsyncByName()
{
var acme = await _tenantStore.FindAsync("acme");
var acme = await _tenantStore.FindAsync("acme").ConfigureAwait(false);
acme.ShouldNotBeNull();
acme.Name.ShouldBe("acme");
}
@ -27,10 +27,10 @@ namespace Volo.Abp.TenantManagement
[Fact]
public async Task FindAsyncById()
{
var acme = await _tenantRepository.FindByNameAsync("acme");
var acme = await _tenantRepository.FindByNameAsync("acme").ConfigureAwait(false);
acme.ShouldNotBeNull();
(await _tenantStore.FindAsync(acme.Id)).ShouldNotBeNull();
(await _tenantStore.FindAsync(acme.Id).ConfigureAwait(false)).ShouldNotBeNull();
}
}
}

@ -16,7 +16,7 @@ namespace Volo.Abp.TenantManagement
[Fact]
public async Task FindDefaultConnectionString()
{
var acme = await _tenantRepository.FindByNameAsync("acme");
var acme = await _tenantRepository.FindByNameAsync("acme").ConfigureAwait(false);
acme.ShouldNotBeNull();
acme.FindDefaultConnectionString().ShouldBe("DefaultConnString-Value");
@ -25,7 +25,7 @@ namespace Volo.Abp.TenantManagement
[Fact]
public async Task FindConnectionString()
{
var acme = await _tenantRepository.FindByNameAsync("acme");
var acme = await _tenantRepository.FindByNameAsync("acme").ConfigureAwait(false);
acme.ShouldNotBeNull();
acme.FindConnectionString(Data.ConnectionStrings.DefaultConnectionStringName).ShouldBe("DefaultConnString-Value");

@ -25,13 +25,13 @@ namespace Volo.Abp.TenantManagement
private async Task AddTenantsAsync()
{
var acme = await _tenantManager.CreateAsync("acme");
var acme = await _tenantManager.CreateAsync("acme").ConfigureAwait(false);
acme.ConnectionStrings.Add(new TenantConnectionString(acme.Id, ConnectionStrings.DefaultConnectionStringName, "DefaultConnString-Value"));
acme.ConnectionStrings.Add(new TenantConnectionString(acme.Id, "MyConnString", "MyConnString-Value"));
await _tenantRepository.InsertAsync(acme);
await _tenantRepository.InsertAsync(acme).ConfigureAwait(false);
var volosoft = await _tenantManager.CreateAsync("volosoft");
await _tenantRepository.InsertAsync(volosoft);
var volosoft = await _tenantManager.CreateAsync("volosoft").ConfigureAwait(false);
await _tenantRepository.InsertAsync(volosoft).ConfigureAwait(false);
}
}
}

@ -22,11 +22,11 @@ namespace Volo.Abp.TenantManagement
{
using (var uow = GetRequiredService<IUnitOfWorkManager>().Begin())
{
var role = await TenantRepository.FindByNameAsync("acme", includeDetails: false);
var role = await TenantRepository.FindByNameAsync("acme", includeDetails: false).ConfigureAwait(false);
role.ConnectionStrings.ShouldNotBeNull();
role.ConnectionStrings.Any().ShouldBeTrue();
await uow.CompleteAsync();
await uow.CompleteAsync().ConfigureAwait(false);
}
}
}

@ -20,13 +20,13 @@ namespace Volo.Abp.TenantManagement
[Fact]
public async Task FindByNameAsync()
{
var tenant = await TenantRepository.FindByNameAsync("acme");
var tenant = await TenantRepository.FindByNameAsync("acme").ConfigureAwait(false);
tenant.ShouldNotBeNull();
tenant = await TenantRepository.FindByNameAsync("undefined-tenant");
tenant = await TenantRepository.FindByNameAsync("undefined-tenant").ConfigureAwait(false);
tenant.ShouldBeNull();
tenant = await TenantRepository.FindByNameAsync("acme", includeDetails: true);
tenant = await TenantRepository.FindByNameAsync("acme", includeDetails: true).ConfigureAwait(false);
tenant.ShouldNotBeNull();
tenant.ConnectionStrings.Count.ShouldBeGreaterThanOrEqualTo(2);
}
@ -34,15 +34,15 @@ namespace Volo.Abp.TenantManagement
[Fact]
public async Task FindAsync()
{
var tenantId = (await TenantRepository.FindByNameAsync("acme")).Id;
var tenantId = (await TenantRepository.FindByNameAsync("acme").ConfigureAwait(false)).Id;
var tenant = await TenantRepository.FindAsync(tenantId);
var tenant = await TenantRepository.FindAsync(tenantId).ConfigureAwait(false);
tenant.ShouldNotBeNull();
tenant = await TenantRepository.FindAsync(Guid.NewGuid());
tenant = await TenantRepository.FindAsync(Guid.NewGuid()).ConfigureAwait(false);
tenant.ShouldBeNull();
tenant = await TenantRepository.FindAsync(tenantId, includeDetails: true);
tenant = await TenantRepository.FindAsync(tenantId, includeDetails: true).ConfigureAwait(false);
tenant.ShouldNotBeNull();
tenant.ConnectionStrings.Count.ShouldBeGreaterThanOrEqualTo(2);
}
@ -50,7 +50,7 @@ namespace Volo.Abp.TenantManagement
[Fact]
public async Task GetListAsync()
{
var tenants = await TenantRepository.GetListAsync();
var tenants = await TenantRepository.GetListAsync().ConfigureAwait(false);
tenants.ShouldContain(t => t.Name == "acme");
tenants.ShouldContain(t => t.Name == "volosoft");
}
@ -58,7 +58,7 @@ namespace Volo.Abp.TenantManagement
[Fact]
public async Task Should_Eager_Load_Tenant_Collections()
{
var role = await TenantRepository.FindByNameAsync("acme");
var role = await TenantRepository.FindByNameAsync("acme").ConfigureAwait(false);
role.ConnectionStrings.ShouldNotBeNull();
role.ConnectionStrings.Any().ShouldBeTrue();
}

Loading…
Cancel
Save