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 511ce74af1..72c2ecaacf 100644 Binary files a/src/AbpDesk/Web_PlugIns/AbpDesk.MongoBlog.dll and b/src/AbpDesk/Web_PlugIns/AbpDesk.MongoBlog.dll differ diff --git a/src/Volo.Abp.Identity.Application/Volo/Abp/Identity/UserAppService.cs b/src/Volo.Abp.Identity.Application/Volo/Abp/Identity/UserAppService.cs index 4ed91fe363..e7f1f68800 100644 --- a/src/Volo.Abp.Identity.Application/Volo/Abp/Identity/UserAppService.cs +++ b/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> 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 + +