public void DoMigrations() { //if (String.IsNullOrEmpty(_config.SqlConnectionString.ProviderName) || // !_config.SqlConnectionString.ProviderName.Equals(SqlClient, StringComparison.OrdinalIgnoreCase)) //{ // return; //} var settingsManager = new DataSettingsManager(); try { //save settings // var connectionString = "mongodb://" + userNameandPassword + model.MongoDBServerName + "/" + model.MongoDBDatabaseName; var settings = new DataSettings { DataProvider = "mongodb", DataConnectionString = " mongodb://localhost:27017/chatdb" }; settingsManager.SaveSettings(settings); var dataProviderInstance = new MongoDBDataProviderManager(settingsManager.LoadSettings()).LoadDataProvider(); dataProviderInstance.InitDatabase(); //now resolve installation service var mongoDBDataProviderManager = new MongoDBDataProviderManager(settingsManager.LoadSettings()); var dataProviderInstall = mongoDBDataProviderManager.LoadDataProvider(); CreateIndexes(); InstallVersion(); } catch (Exception exception) { } }
private void RegisterDataLayer(ContainerBuilder builder) { var dataSettingsManager = new DataSettingsManager(); var dataProviderSettings = dataSettingsManager.LoadSettings(); if (string.IsNullOrEmpty(dataProviderSettings.DataConnectionString)) { builder.Register(c => dataSettingsManager.LoadSettings()).As <DataSettings>(); builder.Register(x => new MongoDBDataProviderManager(x.Resolve <DataSettings>())).As <BaseDataProviderManager>().InstancePerDependency(); builder.Register(x => x.Resolve <BaseDataProviderManager>().LoadDataProvider()).As <IDataProvider>().InstancePerDependency(); } if (dataProviderSettings != null && dataProviderSettings.IsValid()) { var connectionString = dataProviderSettings.DataConnectionString; var mongourl = new MongoUrl(connectionString); var databaseName = mongourl.DatabaseName; builder.Register(c => new MongoClient(mongourl).GetDatabase(databaseName)).InstancePerLifetimeScope(); builder.Register <IMongoDBContext>(c => new MongoDBContext(connectionString)).InstancePerLifetimeScope(); } else { builder.RegisterType <MongoDBContext>().As <IMongoDBContext>().InstancePerLifetimeScope(); } //MongoDbRepository builder.RegisterGeneric(typeof(Repository <>)).As(typeof(IRepository <>)).InstancePerLifetimeScope(); }
/// <summary> /// Register dependencies /// </summary> /// <param name="config">Config</param> protected virtual void RegisterDependencies(DreamSaleConfig config) { var builder = new ContainerBuilder(); //dependencies var typeFinder = new WebAppTypeFinder(); builder.RegisterInstance(config).As <DreamSaleConfig>().SingleInstance(); builder.RegisterInstance(this).As <IEngine>().SingleInstance(); builder.RegisterInstance(typeFinder).As <ITypeFinder>().SingleInstance(); //register dependencies provided by other assemblies var drTypes = typeFinder.FindClassesOfType <IDependencyRegistrar>(); var drInstances = new List <IDependencyRegistrar>(); foreach (var drType in drTypes) { drInstances.Add((IDependencyRegistrar)Activator.CreateInstance(drType)); } //sort drInstances = drInstances.AsQueryable().OrderBy(t => t.Order).ToList(); foreach (var dependencyRegistrar in drInstances) { dependencyRegistrar.Register(builder, typeFinder, config); } //web helper //builder.RegisterType<WebHelper>().As<IWebHelper>().InstancePerLifetimeScope(); //controllers builder.RegisterControllers(typeFinder.GetAssemblies().ToArray()); //data layer var dataSettingsManager = new DataSettingsManager(); var dataProviderSettings = dataSettingsManager.LoadSettings(); builder.Register(c => dataSettingsManager.LoadSettings()).As <DataSettings>(); var container = builder.Build(); this._containerManager = new ContainerManager(container); // Set the dependency resolver for MVC. DependencyResolver.SetResolver(new AutofacDependencyResolver(container)); //HttpConfiguration config = new HttpConfiguration(); // Set the dependency resolver for Web API. //var webApiResolver = new AutofacWebApiDependencyResolver(container); //config.DependencyResolver = webApiResolver; }
public void Register(ContainerBuilder builder, ITypeFinder typeFinder, IServiceProvider sp, AppConfig config) { var dataSettingsManager = new DataSettingsManager(); var dataProviderSettings = dataSettingsManager.LoadSettings(); var dataProvider = (new SusDataProviderManager(dataProviderSettings)).LoadDataProvider(); //services.AddSingleton(typeof(DataSettings), dataProviderSettings); builder.Register(c => dataSettingsManager.LoadSettings()).As <DataSettings>(); //services.AddSingleton(typeof(BaseDataProviderManager), new SusDataProviderManager(dataProviderSettings)); builder.Register(x => new SusDataProviderManager(x.Resolve <DataSettings>())).As <BaseDataProviderManager>().InstancePerDependency(); //services.AddSingleton(typeof(IDataProvider), s => s.GetService<BaseDataProviderManager>().LoadDataProvider()); builder.Register(x => x.Resolve <BaseDataProviderManager>().LoadDataProvider()).As <IDataProvider>().InstancePerDependency(); builder.Register(c => { var contextBuilder = c.Resolve <IDataProvider>(); return(new SusDbContext(contextBuilder.BuildOptions(dataProviderSettings.DataConnectionString))); }).As <IDbContext>().InstancePerLifetimeScope(); //services.AddScoped(typeof(SusDbContext), s => //{ // return new SusDbContext(s.GetService<IDataProvider>().BuildOptions(dataProviderSettings.DataConnectionString)); //}); //services.AddScoped(typeof(IRepository<>),typeof(SusRepository<>)); builder.RegisterGeneric(typeof(SusRepository <>)).As(typeof(IRepository <>)).InstancePerLifetimeScope(); switch (config.CacheType) { case "Redis": //services.AddScoped<ICacheManager, RedisCacheManager>(); builder.RegisterType <RedisCacheManager>().As <ICacheManager>().Named <ICacheManager>("nop_cache_static").InstancePerLifetimeScope(); break; case "Memory": //services.AddSingleton<ICacheManager, MemoryCacheManager>(); builder.RegisterType <MemoryCacheManager>().As <ICacheManager>().Named <ICacheManager>("nop_cache_static").SingleInstance(); break; default: //services.AddScoped<ICacheManager, NullCache>(); builder.RegisterType <NullCache>().As <ICacheManager>().Named <ICacheManager>("nop_cache_static").InstancePerLifetimeScope(); break; } //builder.RegisterType<PerRequestCacheManager>().As<ICacheManager>().Named<ICacheManager>("nop_cache_per_request").InstancePerLifetimeScope(); //services.AddSingleton<IRoutePublisher, RoutePublisher>(); builder.RegisterType <RoutePublisher>().As <IRoutePublisher>().SingleInstance(); //services.AddScoped<IPageHeadBuilder, PageHeadBuilder>(); builder.RegisterType <PageHeadBuilder>().As <IPageHeadBuilder>().InstancePerLifetimeScope(); builder.RegisterType <EncryptionService>().As <IEncryptionService>().InstancePerLifetimeScope(); builder.RegisterType <UserIdentifyService>().As <IUserIdentifyService>().InstancePerLifetimeScope(); builder.RegisterType <UserService>().As <IUserService>().InstancePerLifetimeScope(); builder.RegisterType <AuthenticationService>().As <IAuthenticationService>().InstancePerLifetimeScope(); }
/// <summary> /// Register services and interfaces /// </summary> /// <param name="builder">Container builder</param> /// <param name="typeFinder">Type finder</param> /// <param name="config">Config</param> public virtual void Register(ContainerBuilder builder, ITypeFinder typeFinder, VConfig config) { //HTTP context and other related stuff builder.Register(c => (new HttpContextWrapper(HttpContext.Current) as HttpContextBase)) .As <HttpContextBase>() .InstancePerLifetimeScope(); builder.Register(c => c.Resolve <HttpContextBase>().Request) .As <HttpRequestBase>() .InstancePerLifetimeScope(); builder.Register(c => c.Resolve <HttpContextBase>().Response) .As <HttpResponseBase>() .InstancePerLifetimeScope(); builder.Register(c => c.Resolve <HttpContextBase>().Server) .As <HttpServerUtilityBase>() .InstancePerLifetimeScope(); builder.Register(c => c.Resolve <HttpContextBase>().Session) .As <HttpSessionStateBase>() .InstancePerLifetimeScope(); //controllers builder.RegisterControllers(typeFinder.GetAssemblies().ToArray()); //data layer var dataSettingsManager = new DataSettingsManager(); var dataProviderSettings = dataSettingsManager.LoadSettings(); builder.Register(c => dataSettingsManager.LoadSettings()).As <DataSettings>(); builder.Register(x => new EfDataProviderManager(x.Resolve <DataSettings>())).As <BaseDataProviderManager>().InstancePerDependency(); builder.Register(x => x.Resolve <BaseDataProviderManager>().LoadDataProvider()).As <IDataProvider>().InstancePerDependency(); if (dataProviderSettings != null && dataProviderSettings.IsValid()) { var efDataProviderManager = new EfDataProviderManager(dataSettingsManager.LoadSettings()); var dataProvider = efDataProviderManager.LoadDataProvider(); dataProvider.InitConnectionFactory(); builder.Register <IDbContext>(c => new VObjectContext(dataProviderSettings.DataConnectionString)).InstancePerLifetimeScope(); } else { builder.Register <IDbContext>(c => new VObjectContext(dataSettingsManager.LoadSettings().DataConnectionString)).InstancePerLifetimeScope(); } //repository builder.RegisterGeneric(typeof(EfRepository <>)).As(typeof(IRepository <>)).InstancePerLifetimeScope(); #region services builder.RegisterType <PostService>().As <IPostService>().InstancePerLifetimeScope(); #endregion }
public void Register(ContainerBuilder containerBuilder, ITypeFinder typeFinder, AppConfig appConfig) { // Http Context containerBuilder.Register(c => HttpContext.Current != null ? (new HttpContextWrapper(HttpContext.Current) as HttpContextBase) : (null)) .As <HttpContextBase>() .InstancePerLifetimeScope(); // Controllers containerBuilder.RegisterControllers(typeFinder.GetAssemblies().ToArray()); // DAL DataSettingsManager dataSettingsManager = new DataSettingsManager(); var dataSettings = dataSettingsManager.LoadSettings(); containerBuilder.Register(c => dataSettingsManager.LoadSettings()).As <DataSettings>(); containerBuilder.Register(c => new EfDataProviderManager(c.Resolve <DataSettings>())) .As <BaseDataProviderManager>().InstancePerDependency(); containerBuilder.Register(c => c.Resolve <BaseDataProviderManager>().LoadDataProvider()) .As <IDataProvider>().InstancePerDependency(); if (dataSettings != null && dataSettings.IsValid()) { var efDataProviderManager = new EfDataProviderManager(dataSettings); var dataProvider = efDataProviderManager.LoadDataProvider(); dataProvider.InitConnectionFactory(); containerBuilder.Register <IDbContext>(c => new AppObjectContext(dataSettings.DataConnectionString)).InstancePerLifetimeScope(); } else { containerBuilder.Register <IDbContext>(c => new AppObjectContext(dataSettingsManager.LoadSettings().DataConnectionString)) .InstancePerLifetimeScope(); } containerBuilder.RegisterGeneric(typeof(EfRepository <>)).As(typeof(IRepository <>)).InstancePerLifetimeScope(); //Service containerBuilder.RegisterType <FormAuthenticationService>().As <IAuthenticationService>().InstancePerLifetimeScope(); containerBuilder.RegisterType <StudentService>().As <IStudentService>().InstancePerLifetimeScope(); containerBuilder.RegisterType <StudentRegistrationService>().As <IStudentRegistrationService>().InstancePerLifetimeScope(); containerBuilder.RegisterType <EncryptionService>().As <IEncryptionService>().InstancePerLifetimeScope(); //Route Publisher containerBuilder.RegisterType <RoutePublisher>().As <IRoutePublisher>().SingleInstance(); }
/// <summary> /// Register services and interfaces /// </summary> /// <param name="builder">Container builder</param> /// <param name="typeFinder">Type finder</param> /// <param name="config">Config</param> public virtual void Register(ContainerBuilder builder, ITypeFinder typeFinder, MSTConfig config) { //web helper builder.RegisterType <WebHelper>().As <IWebHelper>().InstancePerLifetimeScope(); //data layer var dataSettingsManager = new DataSettingsManager(); var dataProviderSettings = dataSettingsManager.LoadSettings(); builder.Register(c => dataSettingsManager.LoadSettings()).As <DataSettings>(); builder.Register(x => new EfDataProviderManager(x.Resolve <DataSettings>())).As <BaseDataProviderManager>().InstancePerDependency(); builder.Register(x => x.Resolve <BaseDataProviderManager>().LoadDataProvider()).As <IDataProvider>().InstancePerDependency(); if (dataProviderSettings != null && dataProviderSettings.IsValid()) { var efDataProviderManager = new EfDataProviderManager(dataSettingsManager.LoadSettings()); var dataProvider = efDataProviderManager.LoadDataProvider(); dataProvider.InitConnectionFactory(); builder.Register <IDbContext>(c => new MstDbContext(dataProviderSettings.DataConnectionString)).InstancePerLifetimeScope(); } else { builder.Register <IDbContext>(c => new MstDbContext(dataSettingsManager.LoadSettings().DataConnectionString)).InstancePerLifetimeScope(); } //repositories builder.RegisterGeneric(typeof(EfRepository <>)).As(typeof(IRepository <>)).InstancePerLifetimeScope(); builder.RegisterType <RoutePublisher>().As <IRoutePublisher>().SingleInstance(); //services builder.RegisterType <GenderService>().As <IGenderService>().InstancePerLifetimeScope(); builder.RegisterType <CountryService>().As <ICountryService>().InstancePerLifetimeScope(); builder.RegisterType <OrganizationService>().As <IOrganizationService>().InstancePerLifetimeScope(); builder.RegisterType <UserService>().As <IUserService>().InstancePerLifetimeScope(); builder.RegisterType <EmailService>().As <IEmailService>().InstancePerLifetimeScope(); builder.RegisterType <PatientService>().As <IPatientService>().InstancePerLifetimeScope(); builder.RegisterType <PatientVisitService>().As <IPatientVisitService>().InstancePerLifetimeScope(); builder.RegisterType <OrganizationPharmacyService>().As <IOrganizationPharmacyService>().InstancePerLifetimeScope(); builder.RegisterType <CheifComplainService>().As <ICheifComplainService>().InstancePerLifetimeScope(); builder.RegisterType <AzureStorage>().As <IStorage>().InstancePerLifetimeScope(); //installation service builder.RegisterType <CodeFirstInstallationService>().As <IInstallationService>().InstancePerLifetimeScope(); }
/// <summary> /// Add services to the application and configure service provider /// </summary> /// <param name="services">Collection of service descriptors</param> /// <param name="configuration">Configuration of the application</param> /// <returns>Configured service provider</returns> public static IServiceProvider ConfigureApplicationServices(this IServiceCollection services, IConfiguration configuration) { //add GSConfig configuration parameters services.ConfigureStartupConfig <GSConfig>(configuration.GetSection("GS")); //add hosting configuration parameters services.ConfigureStartupConfig <HostingConfig>(configuration.GetSection("Hosting")); //add accessor to HttpContext services.AddHttpContextAccessor(); //create, initialize and configure the engine var engine = EngineContext.Create(); engine.Initialize(services); var serviceProvider = engine.ConfigureServices(services, configuration); if (DataSettingsManager.DatabaseIsInstalled) { //implement schedule tasks //database is already installed, so start scheduled tasks TaskManager.Instance.Initialize(); TaskManager.Instance.Start(); //log application start EngineContext.Current.Resolve <ILogger>().Information("Application started", null, null); //phuc vu cho viec notification SqlDependency.Start(DataSettingsManager.LoadSettings().DataConnectionString); } return(serviceProvider); }
public MotelProcessorAccessor(IEnumerable <IMigrationProcessor> processors) { var dataSettings = DataSettingsManager.LoadSettings(); var procs = processors.ToList(); if (procs.Count == 0) { throw new ProcessorFactoryNotFoundException("No migration processor registered."); } if (dataSettings is null) { Processor = procs.FirstOrDefault(); } else { switch (dataSettings.DataProvider) { case DataProviderType.SqlServer: Processor = FindGenerator(procs, "SqlServer"); break; case DataProviderType.MySql: Processor = FindGenerator(procs, "MySQL"); break; default: throw new ProcessorFactoryNotFoundException($@"A migration generator for Data provider type {dataSettings.DataProvider} couldn't be found."); } } }
/// <summary> /// Register custom DataContext for a plugin /// </summary> /// <typeparam name="T">Class implementing IDbContext</typeparam> /// <param name="dependencyRegistrar">Dependency registrar</param> /// <param name="builder">Builder</param> /// <param name="contextName">Context name</param> public static void RegisterPluginDataContext <T>(this IDependencyRegistrar dependencyRegistrar, ContainerBuilder builder, string contextName) where T : IDbContext { //data layer var dataSettingsManager = new DataSettingsManager(); var dataProviderSettings = dataSettingsManager.LoadSettings(); if (dataProviderSettings != null && dataProviderSettings.IsValid()) { //register named context builder.Register(c => (IDbContext)Activator.CreateInstance(typeof(T), new object[] { dataProviderSettings.DataConnectionString })) .Named <IDbContext>(contextName) .InstancePerLifetimeScope(); builder.Register(c => (T)Activator.CreateInstance(typeof(T), new object[] { dataProviderSettings.DataConnectionString })) .InstancePerLifetimeScope(); } else { //register named context builder.Register(c => (T)Activator.CreateInstance(typeof(T), new object[] { c.Resolve <DataSettings>().DataConnectionString })) .Named <IDbContext>(contextName) .InstancePerLifetimeScope(); builder.Register(c => (T)Activator.CreateInstance(typeof(T), new object[] { c.Resolve <DataSettings>().DataConnectionString })) .InstancePerLifetimeScope(); } }
public virtual void Register(ContainerBuilder builder, ITypeFinder typeFinder) { builder.RegisterType <ShippingByWeightService>().As <IShippingByWeightService>().InstancePerHttpRequest(); //data layer var dataSettingsManager = new DataSettingsManager(); var dataProviderSettings = dataSettingsManager.LoadSettings(); if (dataProviderSettings != null && dataProviderSettings.IsValid()) { //register named context builder.Register <IDbContext>(c => new ShippingByWeightObjectContext(dataProviderSettings.DataConnectionString)) .Named <IDbContext>("Nas_object_context_shipping_weight_zip") .InstancePerHttpRequest(); builder.Register <ShippingByWeightObjectContext>(c => new ShippingByWeightObjectContext(dataProviderSettings.DataConnectionString)) .InstancePerHttpRequest(); } else { //register named context builder.Register <IDbContext>(c => new ShippingByWeightObjectContext(c.Resolve <DataSettings>().DataConnectionString)) .Named <IDbContext>("Nas_object_context_shipping_weight_zip") .InstancePerHttpRequest(); builder.Register <ShippingByWeightObjectContext>(c => new ShippingByWeightObjectContext(c.Resolve <DataSettings>().DataConnectionString)) .InstancePerHttpRequest(); } //override required repository with our custom context builder.RegisterType <EfRepository <ShippingByWeightRecord> >() .As <IRepository <ShippingByWeightRecord> >() .WithParameter(ResolvedParameter.ForNamed <IDbContext>("Nas_object_context_shipping_weight_zip")) .InstancePerHttpRequest(); }
/// <summary> /// Configure processor /// </summary> /// <param name="processors">Collection of migration processors</param> protected virtual void ConfigureProcessor(IList <IMigrationProcessor> processors) { var dataSettings = DataSettingsManager.LoadSettings(); if (processors.Count == 0) { throw new ProcessorFactoryNotFoundException("No migration processor registered."); } if (dataSettings is null) { Processor = processors.FirstOrDefault(); } else { Processor = dataSettings.DataProvider switch { DataProviderType.SqlServer => FindGenerator(processors, "SqlServer"), DataProviderType.MySql => FindGenerator(processors, "MySQL"), DataProviderType.PostgreSQL => FindGenerator(processors, "Postgres"), _ => throw new ProcessorFactoryNotFoundException( $@"A migration generator for Data provider type {dataSettings.DataProvider} couldn't be found.") } }; }
/// <summary> /// SQL Server specific extension method for Microsoft.EntityFrameworkCore.DbContextOptionsBuilder /// </summary> /// <param name="optionsBuilder">Database context options builder</param> /// <param name="services">Collection of service descriptors</param> public static void UseSqlServerWithLazyLoading(this DbContextOptionsBuilder optionsBuilder, IServiceCollection services) { var dataSettings = DataSettingsManager.LoadSettings(); if (!dataSettings?.IsValid ?? true) { return; } var provider = services.BuildServiceProvider(); var nopConfig = provider.GetRequiredService <NopConfig>(); var optionsBuilderHelpers = provider.GetServices <IDbContextOptionsBuilderHelper>(); var optionsBuilderHelper = optionsBuilderHelpers?.FirstOrDefault(h => h.DataProvider == dataSettings.DataProvider); if (optionsBuilderHelper != null) { optionsBuilderHelper.Configure(optionsBuilder, services, nopConfig, dataSettings); return; } var dbContextOptionsBuilder = optionsBuilder.UseLazyLoadingProxies(); if (nopConfig.UseRowNumberForPaging) { dbContextOptionsBuilder.UseSqlServer(dataSettings.DataConnectionString, option => option.UseRowNumberForPaging()); } else { dbContextOptionsBuilder.UseSqlServer(dataSettings.DataConnectionString); } }
private void AddTokenGenerationPipeline(IServiceCollection services) { RsaSecurityKey signingKey = CryptoHelper.CreateRsaSecurityKey(); DataSettings dataSettings = DataSettingsManager.LoadSettings(); if (!dataSettings?.IsValid ?? true) { return; } string connectionStringFromNop = dataSettings.DataConnectionString; var migrationsAssembly = typeof(ApiStartup).GetTypeInfo().Assembly.GetName().Name; services.AddIdentityServer() .AddSigningCredential(signingKey) .AddConfigurationStore(options => { options.ConfigureDbContext = builder => builder.UseSqlServer(connectionStringFromNop, sql => sql.MigrationsAssembly(migrationsAssembly)); }) .AddOperationalStore(options => { options.ConfigureDbContext = builder => builder.UseSqlServer(connectionStringFromNop, sql => sql.MigrationsAssembly(migrationsAssembly)); }) .AddAuthorizeInteractionResponseGenerator <NopApiAuthorizeInteractionResponseGenerator>() .AddEndpoint <AuthorizeCallbackEndpoint>("Authorize", "/oauth/authorize/callback") .AddEndpoint <AuthorizeEndpoint>("Authorize", "/oauth/authorize") .AddEndpoint <TokenEndpoint>("Token", "/oauth/token"); }
private string GetEmailFromPaymentInvoice(int PaymentId) { var datasettings = DataSettingsManager.LoadSettings(); var connstring = datasettings.ConnectionString; var conn = new SqlConnection(connstring); SqlDataAdapter da = new SqlDataAdapter(); conn.Open(); var cmd = new SqlCommand("SELECT Email FROM PaymentInvoice where id=" + PaymentId + "", conn); cmd.CommandType = CommandType.Text; cmd.CommandTimeout = 0; da = new SqlDataAdapter(cmd); var dt = new DataTable(); da.Fill(dt); try { return(dt.Rows[0]["Email"].ToString()); } catch (Exception ex) { return(ex.Message); } finally { da.Dispose(); conn.Close(); } }
public DemoObjectContext() { DataSettingsManager manager = new DataSettingsManager(); DataSettings dataSetting = manager.LoadSettings(); base.Database.Connection.ConnectionString = dataSetting.DataConnectionString; }
public ActionResult GenerateSqlException() { var dataSettings = DataSettingsManager.LoadSettings(); string connectionString = dataSettings.DataConnectionString; var telemetry = new TelemetryClient(); string queryString = "EXECUTE NonExistantStoredProcedure"; using (SqlConnection connection = new SqlConnection(connectionString)) { SqlCommand command = new SqlCommand(queryString, connection); try { command.Connection.Open(); command.ExecuteNonQuery(); } catch (SqlException ex) { telemetry.TrackException(ex); Console.WriteLine("You have entered the SQL neighbourhood boy! Watch out for dem craaazy Exceptions (つ◉益◉)つ"); return(new RedirectResult("~/Admin/MiscApplicationInsights/Configure")); } } return(new RedirectResult("~/Admin/MiscApplicationInsights/Configure")); }
private void UseAutofac() { var builder = new ContainerBuilder(); builder.RegisterApiControllers(Assembly.GetExecutingAssembly()).PropertiesAutowired(); builder.RegisterWebApiFilterProvider(config); // data var dataSettingsManager = new DataSettingsManager(); builder.Register(x => dataSettingsManager.LoadSettings()).As <DataSettings>(); builder.RegisterGeneric(typeof(MongoDbRepository <>)).As(typeof(IRepository <>)); // caching builder.RegisterType <RedisCacheManager>().As <ICacheManager>().SingleInstance(); // mq builder.RegisterType <MSMessageQueueManager>().As <IMessageQueueManager>().InstancePerLifetimeScope(); // Services builder.RegisterType <FileLogger>().As <ILogger>().InstancePerLifetimeScope(); builder.RegisterType <UserService>().As <IUserService>().InstancePerLifetimeScope(); var container = builder.Build(); config.DependencyResolver = new AutofacWebApiDependencyResolver(container); app.UseAutofacMiddleware(container); app.UseAutofacWebApi(config); }
public static void UseSqlServerWithLazyLoading(this DbContextOptionsBuilder optionsBuilder, IServiceCollection services) { var defaultConfig = services.BuildServiceProvider().GetRequiredService <DefaultConfig>(); var dataSettings = DataSettingsManager.LoadSettings(); if (!dataSettings?.IsValid ?? true) { return; } var dbContextOptionsBuilder = optionsBuilder.UseLazyLoadingProxies(); if (defaultConfig.UseRowNumberForPaging) { dbContextOptionsBuilder.UseSqlServer(dataSettings.DataConnectionString, option => option.UseRowNumberForPaging()); } else { dbContextOptionsBuilder.UseSqlServer(dataSettings.DataConnectionString); } //.UseSqlServer(dataSettings.DataConnectionString, builder => builder.MigrationsAssembly("StockManagementSystem")); }
public virtual void RegisterNotification() { if (string.IsNullOrEmpty(connectionString)) { connectionString = DataSettingsManager.LoadSettings().DataConnectionString; } using (var connection = new SqlConnection(connectionString)) { connection.Open(); if (connection.State == ConnectionState.Closed) { connection.Open(); } using (var command = new SqlCommand("SELECT Id FROM [dbo].[Notification]", connection)) { command.Notification = null; if (dependency == null) { dependency = new SqlDependency(command); dependency.OnChange += new OnChangeEventHandler(Dependency_OnChange); } //do nothing command.ExecuteReader(); } } }
public MobSocialObjectContext Create() { var dataSettingsManager = new DataSettingsManager(); DataSettings dataSettings = dataSettingsManager.LoadSettings(); return(new MobSocialObjectContext(dataSettings.DataConnectionString)); }
/// <summary> /// Token generator /// </summary> /// <param name="services"></param> public static void AddTokenGenerationPipeline(this IServiceCollection services) { var signingKey = CryptoHelper.CreateRsaSecurityKey(); var dataSettings = DataSettingsManager.LoadSettings(); if (!dataSettings?.IsValid ?? true) { return; } var migrationsAssembly = typeof(ApiStartup).GetTypeInfo().Assembly.GetName().Name; services.AddIdentityServer(options => options.UserInteraction.LoginUrl = "/login") .AddSigningCredential(signingKey) .AddConfigurationStore(options => { options.ConfigureDbContext = builder => builder.UseSqlServer(dataSettings.DataConnectionString, sql => sql.MigrationsAssembly(migrationsAssembly)); }) .AddOperationalStore(options => { options.ConfigureDbContext = builder => builder.UseSqlServer(dataSettings.DataConnectionString, sql => sql.MigrationsAssembly(migrationsAssembly)); }) .AddAuthorizeInteractionResponseGenerator <ApiAuthorizeInteractionResponseGenerator>(); }
public void Register(ContainerBuilder builder, Core.Infrastructure.ITypeFinder typeFinder) { // builder.RegisterType<MyProductService>().As<IMyProductService>().InstancePerHttpRequest(); //data layer var dataSettingsManager = new DataSettingsManager(); var dataProviderSettings = dataSettingsManager.LoadSettings(); if (dataProviderSettings != null && dataProviderSettings.IsValid()) { //register named context builder.Register <IDbContext>(c => new PluginObjectContext(dataProviderSettings.DataConnectionString)) .Named <IDbContext>(ContextName) .InstancePerHttpRequest(); builder.Register( c => new PluginObjectContext(dataProviderSettings.DataConnectionString)) .InstancePerHttpRequest(); } else { //register named context builder.Register <IDbContext>( c => new PluginObjectContext(c.Resolve <DataSettings>().DataConnectionString)) .Named <IDbContext>(ContextName) .InstancePerHttpRequest(); builder.Register( c => new PluginObjectContext(c.Resolve <DataSettings>().DataConnectionString)) .InstancePerHttpRequest(); } builder.RegisterType <MyProductService>().As <IMyProductService>().InstancePerHttpRequest(); }
private void UpdatePaymentInvoiceFail(int PaymentId) { var datasettings = DataSettingsManager.LoadSettings(); var connstring = datasettings.ConnectionString; var conn = new SqlConnection(connstring); SqlDataAdapter da = new SqlDataAdapter(); try { conn.Open(); var cmd = new SqlCommand("Update PaymentInvoice SET IsPostToSAP = 0 where Id = " + PaymentId + "", conn); cmd.CommandType = CommandType.Text; cmd.CommandTimeout = 0; var retval = cmd.ExecuteNonQuery(); } catch (Exception exc) { _logger.Error(exc.Message, exc); } finally { da.Dispose(); conn.Close(); } }
public KoreIdentityDbContext() : base() { var settings = DataSettingsManager.LoadSettings(); this.Database.Connection.ConnectionString = settings.ConnectionString; this.Init(); }
/// <summary> /// 配置数据库初始化操作 /// </summary> public virtual void SetDatabaseInitializer() { var dataSettingsManager = new DataSettingsManager(); var dataProviderSettings = dataSettingsManager.LoadSettings(); //依据model更新数据库 Database.SetInitializer(new EfInitializer <EfDbContext, EfConfiguration>(dataProviderSettings.DataConnectionString)); }
/// <summary> /// Creates a connection to a database /// </summary> /// <param name="connectionString">Connection string</param> /// <returns>Connection to a database</returns> public virtual IDbConnection CreateDbConnection(string connectionString = null) { _connection ??= new SqliteConnection(string.IsNullOrEmpty(connectionString) ? DataSettingsManager.LoadSettings().ConnectionString : connectionString); return(_connection); }
public static void ConfigureJambopayServices(this IServiceCollection services, IWebHostEnvironment webHostEnvironment, IConfiguration configuration) { #region Authentication services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme) .AddJwtBearer(options => { options.TokenValidationParameters = new TokenValidationParameters { ValidateIssuer = true, ValidateAudience = true, ValidateLifetime = true, ValidateIssuerSigningKey = true, ValidIssuer = configuration["Jwt:Issuer"], ValidAudience = configuration["Jwt:Issuer"], IssuerSigningKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(configuration["Jwt:Key"])) }; }); #endregion #region Repository services.AddScoped(typeof(IRepository <>), typeof(EfRepository <>)); #endregion #region File Provider CommonHelper.DefaultFileProvider = new JambopayFileProvider(webHostEnvironment); #endregion #region Data Provider var dataSettings = DataSettingsManager.LoadSettings(); services.AddDbContext <IJambopayDataProvider, JambopayDataProvider>(options => options.UseSqlServer(dataSettings.ConnectionString)); #endregion #region Services services.AddTransient <ICustomerService, CustomerService>(); services.AddTransient <ICommissionWithdrawalService, CommissionWithdrawalService>(); services.AddTransient <IServiceService, ServiceService>(); services.AddTransient <IServiceTransactionService, ServiceTransactionService>(); #endregion #region Factories services.AddTransient <IJsonWebTokenService, JsonWebTokenService>(); services.AddTransient <INetworkMarketingFactory, NetworkMarketingFactory>(); #endregion }
public void Configure(IApplicationBuilder app) { // During a clean install we should not register any middlewares i.e IdentityServer as it won't be able to create its // tables without a connection string and will throw an exception var dataSettings = DataSettingsManager.LoadSettings(); if (!dataSettings?.IsValid ?? true) { return; } // The default route templates for the Swagger docs and swagger - ui are "swagger/docs/{apiVersion}" and "swagger/ui/index#/{assetPath}" respectively. //app.UseSwagger(); //app.UseSwaggerUI(options => // { // //var currentAssembly = Assembly.GetAssembly(this.GetType()); // //var currentAssemblyName = currentAssembly.GetName().Name; // //Needeed for removing the "Try It Out" button from the post and put methods. // //http://stackoverflow.com/questions/36772032/swagger-5-2-3-supportedsubmitmethods-removed/36780806#36780806 // //options.InjectOnCompleteJavaScript($"{currentAssemblyName}.Scripts.swaggerPostPutTryItOutButtonsRemoval.js"); // options.SwaggerEndpoint("/swagger/v1/swagger.json", "My API V1"); // } //); //TODO: IDP // This needs to be called here because in the plugin install method identity server is not yet registered. //ApplyIdentityServerMigrations(app); //TODO: IDP //SeedData(app); var rewriteOptions = new RewriteOptions() .AddRewrite("oauth/(.*)", "connect/$1", true) .AddRewrite("api/token", "connect/token", true); app.UseRewriter(rewriteOptions); app.UseMiddleware <IdentityServerScopeParameterMiddleware>(); ////uncomment only if the client is an angular application that directly calls the oauth endpoint //// app.UseCors(Microsoft.Owin.Cors.CorsOptions.AllowAll); UseIdentityServer(app); //need to enable rewind so we can read the request body multiple times (this should eventually be refactored, but both JsonModelBinder and all of the DTO validators need to read this stream) app.Use(async(context, next) => { context.Request.EnableBuffering(); await next(); }); app.UseStaticFiles(); app.UseMvc(); }
private void AddTokenGenerationPipeline(IServiceCollection services) { RsaSecurityKey signingKey = CryptoHelper.CreateRsaSecurityKey(); DataSettings dataSettings = DataSettingsManager.LoadSettings(); if (!dataSettings?.IsValid ?? true) { return; } string connectionStringFromNop = dataSettings.DataConnectionString; var migrationsAssembly = typeof(ApiStartup).GetTypeInfo().Assembly.GetName().Name; services.AddIdentityServer() .AddSigningCredential(signingKey) .AddInMemoryClients(ConfigureIdentityServer.GetClients()) .AddInMemoryIdentityResources(ConfigureIdentityServer.GetIdentityResources()) .AddProfileService <UserProfileService>() //.AddConfigurationStore(options => //{ // options.ConfigureDbContext = builder => // builder.UseSqlServer(connectionStringFromNop, // sql => sql.MigrationsAssembly(migrationsAssembly)); //}) //.AddOperationalStore(options => //{ // options.ConfigureDbContext = builder => // builder.UseSqlServer(connectionStringFromNop, // sql => sql.MigrationsAssembly(migrationsAssembly)); //}) .AddAuthorizeInteractionResponseGenerator <NopApiAuthorizeInteractionResponseGenerator>() .AddEndpoint <AuthorizeCallbackEndpoint>("Authorize", "/oauth/authorize/callback") .AddEndpoint <AuthorizeEndpoint>("Authorize", "/oauth/authorize") .AddEndpoint <TokenEndpoint>("Token", "/oauth/token"); services.AddSingleton <ICustomerService, CustomerService>(); services.AddSingleton <ICustomerRegistrationService, CustomerRegistrationService>(); services.AddTransient <IPersistedGrantStore, PersistedGrantStore>(); services.AddAuthentication() .AddGoogle("Google", options => { options.SignInScheme = IdentityServerConstants.ExternalCookieAuthenticationScheme; options.ClientId = "434483408261-55tc8n0cs4ff1fe21ea8df2o443v2iuc.apps.googleusercontent.com"; options.ClientSecret = "3gcoTrEDPPJ0ukn_aYYT6PWo"; }) .AddFacebook("Facebook", options => { options.SignInScheme = IdentityServerConstants.ExternalCookieAuthenticationScheme; options.ClientId = ""; options.ClientSecret = ""; }); }
/// <summary> /// Kiểm tra xem database đã được khởi tạo chưa bằng cách đọc vào file setting.txt. Quá trình đọc này chỉ được thực hiện duy nhất 1 lần /// bởi kết quả sẽ được cache vào 1 biến static /// </summary> /// <returns></returns> public static bool DatabaseIsInstalled() { if (!_databaseIsInstalled.HasValue) //// khác chỗ này ( thiết lập lock để ngăn truy cập đồng thời ? ) { lock(_lockObj) { if (_databaseIsInstalled == null) { var manager = new DataSettingsManager(); var setting = manager.LoadSettings(); _databaseIsInstalled = setting != null && setting.IsValid(); //// khác ở đây } } } return _databaseIsInstalled.Value; }