From 5d69d017f5aaa2df673ecf66befb309a58e29aaa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Halil=20=C4=B0brahim=20Kalkan?= Date: Thu, 27 Jul 2017 20:35:52 +0300 Subject: [PATCH] Make interception working for identity host project. --- .gitignore | 3 +- .../AbpDesk/ConsoleDemo/BlogPostLister.cs | 33 +++++------- .../AbpDesk/ConsoleDemo/UserLister.cs | 29 ++++------ .../Areas/Blog/Controllers/PostsController.cs | 15 ++---- src/AbpDesk/Web_PlugIns/AbpDesk.MongoBlog.dll | Bin 16896 -> 15872 bytes .../Volo/Abp/Identity/UserAppService.cs | 51 ++++++------------ .../AbpIdentityHttpApiHostModule.cs | 3 +- src/Volo.Abp.Identity.HttpApi.Host/Startup.cs | 15 +++++- .../Volo.Abp.Identity.HttpApi.Host.csproj | 3 ++ 9 files changed, 63 insertions(+), 89 deletions(-) diff --git a/.gitignore b/.gitignore index 059f75f92f..ad6117aa0e 100644 --- a/.gitignore +++ b/.gitignore @@ -253,4 +253,5 @@ paket-files/ # ABP build/outputs -src/AbpDesk/AbpDesk.Web.Mvc/Logs \ No newline at end of file +src/AbpDesk/AbpDesk.Web.Mvc/Logs +/src/Volo.Abp.Identity.HttpApi.Host/Logs diff --git a/src/AbpDesk/AbpDesk.ConsoleDemo/AbpDesk/ConsoleDemo/BlogPostLister.cs b/src/AbpDesk/AbpDesk.ConsoleDemo/AbpDesk/ConsoleDemo/BlogPostLister.cs index f9101e0a90..4e0d170744 100644 --- a/src/AbpDesk/AbpDesk.ConsoleDemo/AbpDesk/ConsoleDemo/BlogPostLister.cs +++ b/src/AbpDesk/AbpDesk.ConsoleDemo/AbpDesk/ConsoleDemo/BlogPostLister.cs @@ -11,44 +11,37 @@ namespace AbpDesk.ConsoleDemo public class BlogPostLister : ITransientDependency { private readonly IQueryableRepository _blogPostRepository; - private readonly IUnitOfWorkManager _unitOfWorkManager; private readonly IGuidGenerator _guidGenerator; public BlogPostLister( IQueryableRepository 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(); } } } diff --git a/src/AbpDesk/AbpDesk.ConsoleDemo/AbpDesk/ConsoleDemo/UserLister.cs b/src/AbpDesk/AbpDesk.ConsoleDemo/AbpDesk/ConsoleDemo/UserLister.cs index 2b3fc0bd13..b5aa8698d2 100644 --- a/src/AbpDesk/AbpDesk.ConsoleDemo/AbpDesk/ConsoleDemo/UserLister.cs +++ b/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 _userRepository; public UserLister( - IdentityUserManager userManager, - IQueryableRepository userRepository, - IUnitOfWorkManager unitOfWorkManager, - IGuidGenerator guidGenerator) + IdentityUserManager userManager, + IQueryableRepository 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()); } } } diff --git a/src/AbpDesk/AbpDesk.MongoBlog/Areas/Blog/Controllers/PostsController.cs b/src/AbpDesk/AbpDesk.MongoBlog/Areas/Blog/Controllers/PostsController.cs index 33f49c20a6..64e0dcf640 100644 --- a/src/AbpDesk/AbpDesk.MongoBlog/Areas/Blog/Controllers/PostsController.cs +++ b/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 _blogPostRepository; - private readonly IUnitOfWorkManager _unitOfWorkManager; - public PostsController(IQueryableRepository blogPostRepository, IUnitOfWorkManager unitOfWorkManager) + public PostsController(IQueryableRepository blogPostRepository) { _blogPostRepository = blogPostRepository; - _unitOfWorkManager = unitOfWorkManager; } public async Task 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); } } } diff --git a/src/AbpDesk/Web_PlugIns/AbpDesk.MongoBlog.dll b/src/AbpDesk/Web_PlugIns/AbpDesk.MongoBlog.dll index 511ce74af1fb21cce3a989e1cfd56f51a98e81b5..72c2ecaacf5079fff9e42ea778d0c493f6806d8e 100644 GIT binary patch delta 4615 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 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(users); - } + return new ListResultDto(users); } public async Task 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 + }; } } } diff --git a/src/Volo.Abp.Identity.HttpApi.Host/AbpIdentityHttpApiHostModule.cs b/src/Volo.Abp.Identity.HttpApi.Host/AbpIdentityHttpApiHostModule.cs index 7188072d3a..3859f51180 100644 --- a/src/Volo.Abp.Identity.HttpApi.Host/AbpIdentityHttpApiHostModule.cs +++ b/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) diff --git a/src/Volo.Abp.Identity.HttpApi.Host/Startup.cs b/src/Volo.Abp.Identity.HttpApi.Host/Startup.cs index d569060be0..f585a5dbde 100644 --- a/src/Volo.Abp.Identity.HttpApi.Host/Startup.cs +++ b/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(); + services.AddApplication(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(); } } diff --git a/src/Volo.Abp.Identity.HttpApi.Host/Volo.Abp.Identity.HttpApi.Host.csproj b/src/Volo.Abp.Identity.HttpApi.Host/Volo.Abp.Identity.HttpApi.Host.csproj index 973033cf0c..489d60a303 100644 --- a/src/Volo.Abp.Identity.HttpApi.Host/Volo.Abp.Identity.HttpApi.Host.csproj +++ b/src/Volo.Abp.Identity.HttpApi.Host/Volo.Abp.Identity.HttpApi.Host.csproj @@ -17,6 +17,7 @@ + @@ -32,6 +33,8 @@ All + +