From c431aa579cc520d057bc575bac49c8458651aaa2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Halil=20=C4=B0brahim=20Kalkan?= Date: Mon, 23 Jan 2017 14:04:26 +0300 Subject: [PATCH] refactor. --- .../ConsoleDemo/AbpDeskConsoleDemoModule.cs | 24 ++++------------- .../AbpDesk/ConsoleDemo/UserLister.cs | 3 --- src/AbpDesk/AbpDesk.ConsoleDemo/project.json | 1 - .../AbpDeskDbConfigurer.cs | 26 ++++++++++++++++++ .../AbpDesk.Web.Mvc/AbpDeskWebMvcModule.cs | 27 +++++-------------- src/AbpDesk/AbpDesk.Web.Mvc/project.json | 1 - .../Volo/Abp/Identity/RoleStore.cs | 10 ++++--- .../Volo/Abp/Identity/UserStore.cs | 8 ++++-- src/Volo.Abp/project.json | 1 + 9 files changed, 52 insertions(+), 49 deletions(-) create mode 100644 src/AbpDesk/AbpDesk.EntityFrameworkCore/AbpDesk/EntityFrameworkCore/AbpDeskDbConfigurer.cs diff --git a/src/AbpDesk/AbpDesk.ConsoleDemo/AbpDesk/ConsoleDemo/AbpDeskConsoleDemoModule.cs b/src/AbpDesk/AbpDesk.ConsoleDemo/AbpDesk/ConsoleDemo/AbpDeskConsoleDemoModule.cs index 82464ed9e9..cc38468796 100644 --- a/src/AbpDesk/AbpDesk.ConsoleDemo/AbpDesk/ConsoleDemo/AbpDeskConsoleDemoModule.cs +++ b/src/AbpDesk/AbpDesk.ConsoleDemo/AbpDesk/ConsoleDemo/AbpDeskConsoleDemoModule.cs @@ -1,11 +1,8 @@ using System.IO; using AbpDesk.Blogging; using AbpDesk.EntityFrameworkCore; -using Microsoft.EntityFrameworkCore; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; -using Volo.Abp.Data; -using Volo.Abp.EntityFrameworkCore; using Volo.Abp.Identity.EntityFrameworkCore; using Volo.Abp.Modularity; @@ -20,31 +17,20 @@ namespace AbpDesk.ConsoleDemo { public override void ConfigureServices(IServiceCollection services) { - var configuration = BuildConfiguration(); + var configuration = BuildConfiguration(Directory.GetCurrentDirectory()); - //Configure DbConnectionOptions by configuration file (appsettings.json) - services.Configure(configuration); - - services.Configure(options => - { - //Configures all dbcontextes to use Sql Server with calculated connection string - options.Configure(context => - { - context.DbContextOptions.UseSqlServer(context.ConnectionString); - }); - }); + AbpDeskDbConfigurer.Configure(services, configuration); services.AddAssemblyOf(); } - private static IConfigurationRoot BuildConfiguration() + private static IConfigurationRoot BuildConfiguration(string basePath) { var builder = new ConfigurationBuilder() - .SetBasePath(Directory.GetCurrentDirectory()) + .SetBasePath(basePath) .AddJsonFile("appsettings.json", optional: true, reloadOnChange: true); - var configuration = builder.Build(); - return configuration; + return builder.Build(); } } } diff --git a/src/AbpDesk/AbpDesk.ConsoleDemo/AbpDesk/ConsoleDemo/UserLister.cs b/src/AbpDesk/AbpDesk.ConsoleDemo/AbpDesk/ConsoleDemo/UserLister.cs index a50ab0ac9a..2b3fc0bd13 100644 --- a/src/AbpDesk/AbpDesk.ConsoleDemo/AbpDesk/ConsoleDemo/UserLister.cs +++ b/src/AbpDesk/AbpDesk.ConsoleDemo/AbpDesk/ConsoleDemo/UserLister.cs @@ -35,9 +35,6 @@ namespace AbpDesk.ConsoleDemo using (var uow = _unitOfWorkManager.Begin()) { - //TODO: Create IdentityUser by a factory or manager to ensure requirements (like unique username) or just use UserManager.Create here? - //_userRepository.Insert(new IdentityUser(_guidGenerator.Create(), "tugrul"), true); - foreach (var user in _userRepository.ToList()) { Console.WriteLine("# " + user); diff --git a/src/AbpDesk/AbpDesk.ConsoleDemo/project.json b/src/AbpDesk/AbpDesk.ConsoleDemo/project.json index be335e152b..70a50353db 100644 --- a/src/AbpDesk/AbpDesk.ConsoleDemo/project.json +++ b/src/AbpDesk/AbpDesk.ConsoleDemo/project.json @@ -20,7 +20,6 @@ "version": "1.1.0-preview4-final" }, "Microsoft.Extensions.Configuration.Json": "1.1.0", - "Microsoft.Extensions.Options.ConfigurationExtensions": "1.1.0", "Volo.Abp.Identity": "1.0.0-*", "Volo.Abp.Identity.EntityFrameworkCore": "1.0.0-*", "AbpDesk.MongoBlog": "1.0.0-*" diff --git a/src/AbpDesk/AbpDesk.EntityFrameworkCore/AbpDesk/EntityFrameworkCore/AbpDeskDbConfigurer.cs b/src/AbpDesk/AbpDesk.EntityFrameworkCore/AbpDesk/EntityFrameworkCore/AbpDeskDbConfigurer.cs new file mode 100644 index 0000000000..82dea19e9c --- /dev/null +++ b/src/AbpDesk/AbpDesk.EntityFrameworkCore/AbpDesk/EntityFrameworkCore/AbpDeskDbConfigurer.cs @@ -0,0 +1,26 @@ +using Microsoft.EntityFrameworkCore; +using Microsoft.Extensions.Configuration; +using Microsoft.Extensions.DependencyInjection; +using Volo.Abp.Data; +using Volo.Abp.EntityFrameworkCore; + +namespace AbpDesk.EntityFrameworkCore +{ + public static class AbpDeskDbConfigurer + { + public static void Configure(IServiceCollection services, IConfigurationRoot configuration) + { + //Configure DbConnectionOptions by configuration file (appsettings.json) + services.Configure(configuration); + + services.Configure(options => + { + //Configures all dbcontextes to use Sql Server with calculated connection string + options.Configure(context => + { + context.DbContextOptions.UseSqlServer(context.ConnectionString); + }); + }); + } + } +} \ No newline at end of file diff --git a/src/AbpDesk/AbpDesk.Web.Mvc/AbpDeskWebMvcModule.cs b/src/AbpDesk/AbpDesk.Web.Mvc/AbpDeskWebMvcModule.cs index a0d74bf6cd..2d3aed2ea6 100644 --- a/src/AbpDesk/AbpDesk.Web.Mvc/AbpDeskWebMvcModule.cs +++ b/src/AbpDesk/AbpDesk.Web.Mvc/AbpDeskWebMvcModule.cs @@ -20,24 +20,12 @@ namespace AbpDesk.Web.Mvc public override void ConfigureServices(IServiceCollection services) { var hostingEnvironment = services.GetSingletonInstance(); + var configuration = BuildConfiguration(hostingEnvironment.ContentRootPath); - //TODO: This code is pretty similar to AbpDeskConsoleDemoModule, so use a common code! - - var configuration = BuildConfiguration(hostingEnvironment); - - //Configure DbConnectionOptions by configuration file (appsettings.json) - services.Configure(configuration); - - services.Configure(options => - { - //Configures all dbcontextes to use Sql Server with calculated connection string - options.Configure(context => - { - context.DbContextOptions.UseSqlServer(context.ConnectionString); - }); - }); - + AbpDeskDbConfigurer.Configure(services, configuration); + services.AddMvc(); + services.AddAssemblyOf(); } public override void OnApplicationInitialization(ApplicationInitializationContext context) @@ -61,14 +49,13 @@ namespace AbpDesk.Web.Mvc }); } - private static IConfigurationRoot BuildConfiguration(IHostingEnvironment hostingEnvironment) + private static IConfigurationRoot BuildConfiguration(string basePath) { var builder = new ConfigurationBuilder() - .SetBasePath(hostingEnvironment.ContentRootPath) + .SetBasePath(basePath) .AddJsonFile("appsettings.json", optional: true, reloadOnChange: true); - var configuration = builder.Build(); - return configuration; + return builder.Build(); } } } diff --git a/src/AbpDesk/AbpDesk.Web.Mvc/project.json b/src/AbpDesk/AbpDesk.Web.Mvc/project.json index 4c3aaca385..9b1c6a996c 100644 --- a/src/AbpDesk/AbpDesk.Web.Mvc/project.json +++ b/src/AbpDesk/AbpDesk.Web.Mvc/project.json @@ -11,7 +11,6 @@ "Microsoft.AspNetCore.StaticFiles": "1.1.0", "Microsoft.Extensions.Configuration.EnvironmentVariables": "1.1.0", "Microsoft.Extensions.Configuration.Json": "1.1.0", - "Microsoft.Extensions.Options.ConfigurationExtensions": "1.1.0", "AbpDesk.Application.Contracts": "1.0.0-*", "Microsoft.EntityFrameworkCore.Tools": { "type": "build", diff --git a/src/Volo.Abp.Identity/Volo/Abp/Identity/RoleStore.cs b/src/Volo.Abp.Identity/Volo/Abp/Identity/RoleStore.cs index 1c85075c33..196e241ab6 100644 --- a/src/Volo.Abp.Identity/Volo/Abp/Identity/RoleStore.cs +++ b/src/Volo.Abp.Identity/Volo/Abp/Identity/RoleStore.cs @@ -6,6 +6,7 @@ using System.Threading; using System.Threading.Tasks; using JetBrains.Annotations; using Microsoft.AspNetCore.Identity; +using Microsoft.Extensions.Logging; using Volo.Abp.Uow; using Volo.DependencyInjection; @@ -21,17 +22,20 @@ namespace Volo.Abp.Identity { private readonly IIdentityRoleRepository _roleRepository; private readonly IUnitOfWorkManager _unitOfWorkManager; + private readonly ILogger _logger; /// /// Constructs a new instance of . /// public RoleStore( IIdentityRoleRepository roleRepository, - IUnitOfWorkManager unitOfWorkManager, + IUnitOfWorkManager unitOfWorkManager, + ILogger logger, IdentityErrorDescriber describer = null) { _roleRepository = roleRepository; _unitOfWorkManager = unitOfWorkManager; + _logger = logger; ErrorDescriber = describer ?? new IdentityErrorDescriber(); } @@ -100,7 +104,7 @@ namespace Volo.Abp.Identity } catch (AbpDbConcurrencyException ex) { - //TODO: Log...? + _logger.LogWarning(ex.ToString()); //Trigger some AbpHandledException event return IdentityResult.Failed(ErrorDescriber.ConcurrencyFailure()); } @@ -126,7 +130,7 @@ namespace Volo.Abp.Identity } catch (AbpDbConcurrencyException ex) { - //TODO: Log... + _logger.LogWarning(ex.ToString()); //Trigger some AbpHandledException event return IdentityResult.Failed(ErrorDescriber.ConcurrencyFailure()); } diff --git a/src/Volo.Abp.Identity/Volo/Abp/Identity/UserStore.cs b/src/Volo.Abp.Identity/Volo/Abp/Identity/UserStore.cs index eeca7f5a04..5bcc50b11d 100644 --- a/src/Volo.Abp.Identity/Volo/Abp/Identity/UserStore.cs +++ b/src/Volo.Abp.Identity/Volo/Abp/Identity/UserStore.cs @@ -7,6 +7,7 @@ using System.Threading; using System.Threading.Tasks; using JetBrains.Annotations; using Microsoft.AspNetCore.Identity; +using Microsoft.Extensions.Logging; using Volo.Abp.Uow; using Volo.DependencyInjection; using Volo.ExtensionMethods; @@ -43,6 +44,7 @@ namespace Volo.Abp.Identity public bool AutoSaveChanges { get; set; } = true; private readonly IIdentityRoleRepository _roleRepository; + private readonly ILogger _logger; private readonly IIdentityUserRepository _userRepository; private readonly IUnitOfWorkManager _unitOfWorkManager; @@ -50,11 +52,13 @@ namespace Volo.Abp.Identity IUnitOfWorkManager unitOfWorkManager, IIdentityUserRepository userRepository, IIdentityRoleRepository roleRepository, + ILogger logger, IdentityErrorDescriber describer = null) //TODO: describer? TODO: Test if DI supports optional injection { _unitOfWorkManager = unitOfWorkManager; _userRepository = userRepository; _roleRepository = roleRepository; + _logger = logger; ErrorDescriber = describer ?? new IdentityErrorDescriber(); } @@ -190,7 +194,7 @@ namespace Volo.Abp.Identity } catch (AbpDbConcurrencyException ex) { - //TODO: Log...? + _logger.LogWarning(ex.ToString()); //Trigger some AbpHandledException event return IdentityResult.Failed(ErrorDescriber.ConcurrencyFailure()); } @@ -216,7 +220,7 @@ namespace Volo.Abp.Identity } catch (AbpDbConcurrencyException ex) { - //TODO: Log... + _logger.LogWarning(ex.ToString()); //Trigger some AbpHandledException event return IdentityResult.Failed(ErrorDescriber.ConcurrencyFailure()); } diff --git a/src/Volo.Abp/project.json b/src/Volo.Abp/project.json index b3997630ff..8dc093b1bd 100644 --- a/src/Volo.Abp/project.json +++ b/src/Volo.Abp/project.json @@ -5,6 +5,7 @@ "NETStandard.Library": "1.6.1", "Microsoft.Extensions.DependencyInjection": "1.1.0", "Microsoft.Extensions.Options": "1.1.0", + "Microsoft.Extensions.Options.ConfigurationExtensions": "1.1.0", "Microsoft.Extensions.Logging": "1.1.0", "System.Collections.Immutable": "1.3.0", "System.Runtime.Loader": "4.3.0",