Browse Source

Make interception working for identity host project.

pull/96/head
Halil İbrahim Kalkan 9 years ago
parent
commit
5d69d017f5
  1. 3
      .gitignore
  2. 33
      src/AbpDesk/AbpDesk.ConsoleDemo/AbpDesk/ConsoleDemo/BlogPostLister.cs
  3. 29
      src/AbpDesk/AbpDesk.ConsoleDemo/AbpDesk/ConsoleDemo/UserLister.cs
  4. 15
      src/AbpDesk/AbpDesk.MongoBlog/Areas/Blog/Controllers/PostsController.cs
  5. BIN
      src/AbpDesk/Web_PlugIns/AbpDesk.MongoBlog.dll
  6. 51
      src/Volo.Abp.Identity.Application/Volo/Abp/Identity/UserAppService.cs
  7. 3
      src/Volo.Abp.Identity.HttpApi.Host/AbpIdentityHttpApiHostModule.cs
  8. 15
      src/Volo.Abp.Identity.HttpApi.Host/Startup.cs
  9. 3
      src/Volo.Abp.Identity.HttpApi.Host/Volo.Abp.Identity.HttpApi.Host.csproj

3
.gitignore

@ -253,4 +253,5 @@ paket-files/
# ABP
build/outputs
src/AbpDesk/AbpDesk.Web.Mvc/Logs
src/AbpDesk/AbpDesk.Web.Mvc/Logs
/src/Volo.Abp.Identity.HttpApi.Host/Logs

33
src/AbpDesk/AbpDesk.ConsoleDemo/AbpDesk/ConsoleDemo/BlogPostLister.cs

@ -11,44 +11,37 @@ namespace AbpDesk.ConsoleDemo
public class BlogPostLister : ITransientDependency
{
private readonly IQueryableRepository<BlogPost> _blogPostRepository;
private readonly IUnitOfWorkManager _unitOfWorkManager;
private readonly IGuidGenerator _guidGenerator;
public BlogPostLister(
IQueryableRepository<BlogPost> blogPostRepository,
IUnitOfWorkManager unitOfWorkManager,
IGuidGenerator guidGenerator)
{
_blogPostRepository = blogPostRepository;
_unitOfWorkManager = unitOfWorkManager;
_guidGenerator = guidGenerator;
}
public void List()
[UnitOfWork]
public virtual void List()
{
Console.WriteLine();
Console.WriteLine("List of blog posts:");
using (var unitOfWork = _unitOfWorkManager.Begin())
{
//var blog = _blogPostRepository.FirstOrDefault(b => b.Title.StartsWith("Hello World 3!"));
//blog.SetTitle(blog.Title + "'");
//blog.Comments.Add(new BlogPostComment("@john", "good post! " + DateTime.Now.ToString(CultureInfo.InvariantCulture), star: (byte)RandomHelper.GetRandom(1, 6)));
//_blogPostRepository.Update(blog);
//var blog = _blogPostRepository.FirstOrDefault(b => b.Title.StartsWith("Hello World 3!"));
//blog.SetTitle(blog.Title + "'");
//blog.Comments.Add(new BlogPostComment("@john", "good post! " + DateTime.Now.ToString(CultureInfo.InvariantCulture), star: (byte)RandomHelper.GetRandom(1, 6)));
//_blogPostRepository.Update(blog);
//_blogPostRepository.Insert(new BlogPost(_guidGenerator.Create(), "Hello World 1!", DateTime.Now.ToString(CultureInfo.InvariantCulture)));
//_blogPostRepository.Insert(new BlogPost(_guidGenerator.Create(), "Hello World 1!", DateTime.Now.ToString(CultureInfo.InvariantCulture)));
foreach (var blogPost in _blogPostRepository)
{
Console.WriteLine("# " + blogPost);
foreach (var blogPost in _blogPostRepository)
{
Console.WriteLine("# " + blogPost);
foreach (var comment in blogPost.Comments)
{
Console.WriteLine(" - " + comment);
}
foreach (var comment in blogPost.Comments)
{
Console.WriteLine(" - " + comment);
}
unitOfWork.Complete();
}
}
}

29
src/AbpDesk/AbpDesk.ConsoleDemo/AbpDesk/ConsoleDemo/UserLister.cs

@ -1,7 +1,6 @@
using System;
using System.Linq;
using Volo.Abp.Domain.Repositories;
using Volo.Abp.Guids;
using Volo.Abp.Identity;
using Volo.Abp.Threading;
using Volo.Abp.Uow;
@ -12,40 +11,30 @@ namespace AbpDesk.ConsoleDemo
public class UserLister : ITransientDependency
{
private readonly IdentityUserManager _userManager;
private readonly IUnitOfWorkManager _unitOfWorkManager;
private readonly IGuidGenerator _guidGenerator;
private readonly IQueryableRepository<IdentityUser> _userRepository;
public UserLister(
IdentityUserManager userManager,
IQueryableRepository<IdentityUser> userRepository,
IUnitOfWorkManager unitOfWorkManager,
IGuidGenerator guidGenerator)
IdentityUserManager userManager,
IQueryableRepository<IdentityUser> userRepository)
{
_userManager = userManager;
_userRepository = userRepository;
_unitOfWorkManager = unitOfWorkManager;
_guidGenerator = guidGenerator;
}
public void List()
[UnitOfWork]
public virtual void List()
{
Console.WriteLine();
Console.WriteLine("List of users:");
using (var uow = _unitOfWorkManager.Begin())
foreach (var user in _userRepository.ToList())
{
foreach (var user in _userRepository.ToList())
{
Console.WriteLine("# " + user);
Console.WriteLine("# " + user);
foreach (var roleName in AsyncHelper.RunSync(() => _userManager.GetRolesAsync(user)))
{
Console.WriteLine(" - " + roleName);
}
foreach (var roleName in AsyncHelper.RunSync(() => _userManager.GetRolesAsync(user)))
{
Console.WriteLine(" - " + roleName);
}
AsyncHelper.RunSync(() => uow.CompleteAsync());
}
}
}

15
src/AbpDesk/AbpDesk.MongoBlog/Areas/Blog/Controllers/PostsController.cs

@ -3,7 +3,6 @@ using AbpDesk.Blogging;
using Microsoft.AspNetCore.Mvc;
using Volo.Abp.AspNetCore.Mvc;
using Volo.Abp.Domain.Repositories;
using Volo.Abp.Uow;
namespace Areas.Blog.Controllers
{
@ -11,24 +10,16 @@ namespace Areas.Blog.Controllers
public class PostsController : AbpController
{
private readonly IQueryableRepository<BlogPost> _blogPostRepository;
private readonly IUnitOfWorkManager _unitOfWorkManager;
public PostsController(IQueryableRepository<BlogPost> blogPostRepository, IUnitOfWorkManager unitOfWorkManager)
public PostsController(IQueryableRepository<BlogPost> blogPostRepository)
{
_blogPostRepository = blogPostRepository;
_unitOfWorkManager = unitOfWorkManager;
}
public async Task<ActionResult> Index()
{
using (var unitOfWork = _unitOfWorkManager.Begin())
{
var posts = await _blogPostRepository.GetListAsync(HttpContext.RequestAborted);
await unitOfWork.CompleteAsync(HttpContext.RequestAborted);
return View(posts);
}
var posts = await _blogPostRepository.GetListAsync(HttpContext.RequestAborted);
return View(posts);
}
}
}

BIN
src/AbpDesk/Web_PlugIns/AbpDesk.MongoBlog.dll

Binary file not shown.

51
src/Volo.Abp.Identity.Application/Volo/Abp/Identity/UserAppService.cs

@ -2,7 +2,6 @@
using System.Linq;
using System.Threading.Tasks;
using Volo.Abp.Application.Services.Dtos;
using Volo.Abp.Uow;
namespace Volo.Abp.Identity
{
@ -11,52 +10,36 @@ namespace Volo.Abp.Identity
public class UserAppService : IUserAppService
{
private readonly IIdentityUserRepository _userRepository;
private readonly IUnitOfWorkManager _unitOfWorkManager;
public UserAppService(
IIdentityUserRepository userRepository,
IUnitOfWorkManager unitOfWorkManager)
public UserAppService(IIdentityUserRepository userRepository)
{
_userRepository = userRepository;
_unitOfWorkManager = unitOfWorkManager;
}
public async Task<ListResultDto<IdentityUserDto>> GetAll()
{
//Use conventional unit of work for application services when it's available!
using (var unitOfWork = _unitOfWorkManager.Begin())
{
var users = (await _userRepository.GetListAsync())
.Select(u => new IdentityUserDto
{
Id = u.Id,
Email = u.Email,
UserName = u.UserName
})
.ToList();
await unitOfWork.CompleteAsync();
var users = (await _userRepository.GetListAsync())
.Select(u => new IdentityUserDto
{
Id = u.Id,
Email = u.Email,
UserName = u.UserName
})
.ToList();
return new ListResultDto<IdentityUserDto>(users);
}
return new ListResultDto<IdentityUserDto>(users);
}
public async Task<IdentityUserDto> Get(Guid id)
{
//Use conventional unit of work for application services when it's available!
using (var unitOfWork = _unitOfWorkManager.Begin())
{
var user = await _userRepository.GetAsync(id);
var user = await _userRepository.GetAsync(id);
await unitOfWork.CompleteAsync();
return new IdentityUserDto
{
Id = user.Id,
UserName = user.UserName,
Email = user.Email
};
}
return new IdentityUserDto
{
Id = user.Id,
UserName = user.UserName,
Email = user.Email
};
}
}
}

3
src/Volo.Abp.Identity.HttpApi.Host/AbpIdentityHttpApiHostModule.cs

@ -5,6 +5,7 @@ using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Logging;
using Volo.Abp.AspNetCore.Modularity;
using Volo.Abp.Autofac;
using Volo.Abp.Data;
using Volo.Abp.EntityFrameworkCore;
using Volo.Abp.Identity.EntityFrameworkCore;
@ -12,7 +13,7 @@ using Volo.Abp.Modularity;
namespace Volo.Abp.Identity.HttpApi.Host
{
[DependsOn(typeof(AbpIdentityHttpApiModule), typeof(AbpIdentityEntityFrameworkCoreModule))]
[DependsOn(typeof(AbpIdentityHttpApiModule), typeof(AbpIdentityEntityFrameworkCoreModule), typeof(AbpAutofacModule))]
public class AbpIdentityHttpApiHostModule : AbpModule
{
public override void ConfigureServices(IServiceCollection services)

15
src/Volo.Abp.Identity.HttpApi.Host/Startup.cs

@ -3,6 +3,7 @@ using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Logging;
using Serilog;
namespace Volo.Abp.Identity.HttpApi.Host
{
@ -10,7 +11,10 @@ namespace Volo.Abp.Identity.HttpApi.Host
{
public IServiceProvider ConfigureServices(IServiceCollection services)
{
services.AddApplication<AbpIdentityHttpApiHostModule>();
services.AddApplication<AbpIdentityHttpApiHostModule>(options =>
{
options.UseAutofac();
});
//TODO: This is needed because ASP.NET Core does not use IServiceProviderFactory!
return services.BuildServiceProviderFromFactory();
@ -18,6 +22,15 @@ namespace Volo.Abp.Identity.HttpApi.Host
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
{
loggerFactory
.AddConsole()
.AddDebug()
.AddSerilog(new LoggerConfiguration()
.Enrich.FromLogContext()
.WriteTo.RollingFile("Logs/logs.txt")
.CreateLogger()
);
app.InitializeApplication();
}
}

3
src/Volo.Abp.Identity.HttpApi.Host/Volo.Abp.Identity.HttpApi.Host.csproj

@ -17,6 +17,7 @@
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\Volo.Abp.Autofac\Volo.Abp.Autofac.csproj" />
<ProjectReference Include="..\Volo.Abp.Identity.EntityFrameworkCore\Volo.Abp.Identity.EntityFrameworkCore.csproj" />
<ProjectReference Include="..\Volo.Abp.Identity.HttpApi\Volo.Abp.Identity.HttpApi.csproj" />
</ItemGroup>
@ -32,6 +33,8 @@
<PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="1.1.1">
<PrivateAssets>All</PrivateAssets>
</PackageReference>
<PackageReference Include="Serilog.Extensions.Logging" Version="1.4.0" />
<PackageReference Include="Serilog.Sinks.RollingFile" Version="3.3.0" />
</ItemGroup>
<ItemGroup>

Loading…
Cancel
Save