Browse Source

move blog, docs and tenant management to async api

pull/2464/head
Halil İbrahim Kalkan 7 years ago
parent
commit
d94e01f0ce
  1. 2
      modules/blogging/src/Volo.Blogging.Application/Volo/Blogging/Posts/PostAppService.cs
  2. 3
      modules/blogging/src/Volo.Blogging.Domain/Volo/Blogging/Tagging/ITagRepository.cs
  3. 7
      modules/blogging/src/Volo.Blogging.EntityFrameworkCore/Volo/Blogging/Tagging/EfCoreTagRepository.cs
  4. 11
      modules/blogging/src/Volo.Blogging.MongoDB/Volo/Blogging/Tagging/MongoTagRepository.cs
  5. 2
      modules/blogging/test/Volo.Blogging.TestBase/Volo/Blogging/Tagging/TagRepository_Tests.cs
  6. 5
      modules/docs/test/Volo.Docs.TestBase/Volo/Docs/DocsTestBaseModule.cs
  7. 7
      modules/docs/test/Volo.Docs.TestBase/Volo/Docs/DocsTestDataBuilder.cs
  8. 5
      modules/tenant-management/src/Volo.Abp.TenantManagement.Domain/Volo/Abp/TenantManagement/ITenantRepository.cs
  9. 2
      modules/tenant-management/src/Volo.Abp.TenantManagement.Domain/Volo/Abp/TenantManagement/TenantStore.cs
  10. 7
      modules/tenant-management/src/Volo.Abp.TenantManagement.EntityFrameworkCore/Volo/Abp/TenantManagement/EntityFrameworkCore/EfCoreTenantRepository.cs
  11. 6
      modules/tenant-management/src/Volo.Abp.TenantManagement.MongoDB/Volo/Abp/TenantManagement/MongoDb/MongoTenantRepository.cs

2
modules/blogging/src/Volo.Blogging.Application/Volo/Blogging/Posts/PostAppService.cs

@ -118,7 +118,7 @@ namespace Volo.Blogging.Posts
await AuthorizationService.CheckAsync(post, CommonOperations.Delete);
var tags = await GetTagsOfPost(id);
_tagRepository.DecreaseUsageCountOfTags(tags.Select(t => t.Id).ToList());
await _tagRepository.DecreaseUsageCountOfTagsAsync(tags.Select(t => t.Id).ToList());
await _commentRepository.DeleteOfPost(id);
await _postRepository.DeleteAsync(id);

3
modules/blogging/src/Volo.Blogging.Domain/Volo/Blogging/Tagging/ITagRepository.cs

@ -1,5 +1,6 @@
using System;
using System.Collections.Generic;
using System.Threading;
using System.Threading.Tasks;
using Volo.Abp.Domain.Repositories;
@ -15,6 +16,6 @@ namespace Volo.Blogging.Tagging
Task<List<Tag>> GetListAsync(IEnumerable<Guid> ids);
void DecreaseUsageCountOfTags(List<Guid> id);
Task DecreaseUsageCountOfTagsAsync(List<Guid> id, CancellationToken cancellationToken = default);
}
}

7
modules/blogging/src/Volo.Blogging.EntityFrameworkCore/Volo/Blogging/Tagging/EfCoreTagRepository.cs

@ -1,6 +1,7 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading;
using System.Threading.Tasks;
using Microsoft.EntityFrameworkCore;
using Volo.Abp.Domain.Repositories.EntityFrameworkCore;
@ -36,9 +37,11 @@ namespace Volo.Blogging.Tagging
return await DbSet.Where(t => ids.Contains(t.Id)).ToListAsync();
}
public void DecreaseUsageCountOfTags(List<Guid> ids)
public async Task DecreaseUsageCountOfTagsAsync(List<Guid> ids, CancellationToken cancellationToken = default)
{
var tags = DbSet.Where(t => ids.Any(id => id == t.Id));
var tags = await DbSet
.Where(t => ids.Any(id => id == t.Id))
.ToListAsync(GetCancellationToken(cancellationToken));
foreach (var tag in tags)
{

11
modules/blogging/src/Volo.Blogging.MongoDB/Volo/Blogging/Tagging/MongoTagRepository.cs

@ -1,6 +1,7 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading;
using System.Threading.Tasks;
using MongoDB.Driver;
using MongoDB.Driver.Linq;
@ -19,7 +20,7 @@ namespace Volo.Blogging.Tagging
public async Task<List<Tag>> GetListAsync(Guid blogId)
{
return await GetMongoQueryable().Where(t=>t.BlogId == blogId).ToListAsync();
return await GetMongoQueryable().Where(t => t.BlogId == blogId).ToListAsync();
}
public async Task<Tag> GetByNameAsync(Guid blogId, string name)
@ -37,14 +38,16 @@ namespace Volo.Blogging.Tagging
return await GetMongoQueryable().Where(t => ids.Contains(t.Id)).ToListAsync();
}
public void DecreaseUsageCountOfTags(List<Guid> ids)
public async Task DecreaseUsageCountOfTagsAsync(List<Guid> ids, CancellationToken cancellationToken = default)
{
var tags = GetMongoQueryable().Where(t => ids.Contains(t.Id));
var tags = await GetMongoQueryable()
.Where(t => ids.Contains(t.Id))
.ToListAsync(GetCancellationToken(cancellationToken));
foreach (var tag in tags)
{
tag.DecreaseUsageCount();
Update(tag);
await UpdateAsync(tag, cancellationToken: GetCancellationToken(cancellationToken));
}
}
}

2
modules/blogging/test/Volo.Blogging.TestBase/Volo/Blogging/Tagging/TagRepository_Tests.cs

@ -60,7 +60,7 @@ namespace Volo.Blogging.Tagging
var tag = await TagRepository.FindByNameAsync(BloggingTestData.Blog1Id, BloggingTestData.Tag1Name);
var usageCount = tag.UsageCount;
TagRepository.DecreaseUsageCountOfTags(new List<Guid>()
await TagRepository.DecreaseUsageCountOfTagsAsync(new List<Guid>()
{
tag.Id
});

5
modules/docs/test/Volo.Docs.TestBase/Volo/Docs/DocsTestBaseModule.cs

@ -3,6 +3,7 @@ using Volo.Abp;
using Volo.Abp.Authorization;
using Volo.Abp.Autofac;
using Volo.Abp.Modularity;
using Volo.Abp.Threading;
namespace Volo.Docs
{
@ -28,9 +29,9 @@ namespace Volo.Docs
{
using (var scope = context.ServiceProvider.CreateScope())
{
scope.ServiceProvider
AsyncHelper.RunSync(() => scope.ServiceProvider
.GetRequiredService<DocsTestDataBuilder>()
.Build();
.BuildAsync());
}
}
}

7
modules/docs/test/Volo.Docs.TestBase/Volo/Docs/DocsTestDataBuilder.cs

@ -1,4 +1,5 @@
using Volo.Abp.Data;
using System.Threading.Tasks;
using Volo.Abp.Data;
using Volo.Abp.DependencyInjection;
using Volo.Docs.GitHub.Documents;
using Volo.Docs.Projects;
@ -18,7 +19,7 @@ namespace Volo.Docs
_projectRepository = projectRepository;
}
public void Build()
public async Task BuildAsync()
{
var project = new Project(
_testData.PorjectId,
@ -36,7 +37,7 @@ namespace Volo.Docs
.SetProperty("GitHubAccessToken", "123456")
.SetProperty("GitHubUserAgent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64)");
_projectRepository.Insert(project);
await _projectRepository.InsertAsync(project);
}
}
}

5
modules/tenant-management/src/Volo.Abp.TenantManagement.Domain/Volo/Abp/TenantManagement/ITenantRepository.cs

@ -18,6 +18,11 @@ namespace Volo.Abp.TenantManagement
bool includeDetails = true
);
Tenant FindById(
Guid id,
bool includeDetails = true
);
Task<List<Tenant>> GetListAsync(
string sorting = null,
int maxResultCount = int.MaxValue,

2
modules/tenant-management/src/Volo.Abp.TenantManagement.Domain/Volo/Abp/TenantManagement/TenantStore.cs

@ -70,7 +70,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 = _tenantRepository.Find(id);
var tenant = _tenantRepository.FindById(id);
if (tenant == null)
{
return null;

7
modules/tenant-management/src/Volo.Abp.TenantManagement.EntityFrameworkCore/Volo/Abp/TenantManagement/EntityFrameworkCore/EfCoreTenantRepository.cs

@ -35,6 +35,13 @@ namespace Volo.Abp.TenantManagement.EntityFrameworkCore
.FirstOrDefault(t => t.Name == name);
}
public Tenant FindById(Guid id, bool includeDetails = true)
{
return DbSet
.IncludeDetails(includeDetails)
.FirstOrDefault(t => t.Id == id);
}
public virtual async Task<List<Tenant>> GetListAsync(
string sorting = null,
int maxResultCount = int.MaxValue,

6
modules/tenant-management/src/Volo.Abp.TenantManagement.MongoDB/Volo/Abp/TenantManagement/MongoDb/MongoTenantRepository.cs

@ -34,6 +34,12 @@ namespace Volo.Abp.TenantManagement.MongoDB
.FirstOrDefault(t => t.Name == name);
}
public Tenant FindById(Guid id, bool includeDetails = true)
{
return GetMongoQueryable()
.FirstOrDefault(t => t.Id == id);
}
public virtual async Task<List<Tenant>> GetListAsync(
string sorting = null,
int maxResultCount = int.MaxValue,

Loading…
Cancel
Save