static void Main(string[] args) { var builder = new ConfigurationBuilder() .SetBasePath(Directory.GetCurrentDirectory()) .AddJsonFile("db.provider.json"); var config = builder.Build(); DbProviderManager.LoadConfiguration(config); var conn = DbConnectionStringManager.ConnectionStrings["sqlite"]; DbProviderFactory factory = DbProviderFactories.GetFactory(conn.ProviderName); IDbConnection db = factory.CreateConnection(); db.ConnectionString = conn.ConnectionString; db.Open(); var cmd = db.CreateCommand(); cmd.CommandText = "select datetime('now');"; var dt = cmd.ExecuteScalar(); System.Console.WriteLine(dt); db.Close(); }
public static IServiceCollection AddWangSql(this IServiceCollection services, DbProviderOptions option) { DbProviderManager.Set(option); services.AddScoped <ISqlMapper, SqlMapper>(); services.AddScoped <ISqlExe, SqlMapper>(); return(services); }
public IDbConnection GetConnection(bool IsIarBD = false) { DbProviderManager.LoadConfiguration(connectionString); Connection = DbProviderFactories.GetFactory(connectionString.GetConnectionString("ProviderName")).CreateConnection(); Connection.ConnectionString = connectionString.GetConnectionString(IsIarBD ? "IarConnectionString" : "ConnectionString"); return(Connection); }
public static void Main(string[] args) { var builder = new ConfigurationBuilder() .SetBasePath(Directory.GetCurrentDirectory()) .AddJsonFile("db.provider.json"); var config = builder.Build(); DbProviderManager.LoadConfiguration(config); CreateWebHostBuilder(args).Build().Run(); }
// This method gets called by the runtime. Use this method to add services to the container. // For more information on how to configure your application, visit http://go.microsoft.com/fwlink/?LinkID=398940 public IServiceProvider ConfigureServices(IServiceCollection services) { // Register the Swagger generator, defining 1 or more Swagger documents services.AddSwaggerGen(c => { c.SwaggerDoc("v1", new Info { Title = "User Settings API", Version = "v1" }); }); services.AddMvc(con => { con.Filters.Add(new GlobalFilter()); }).SetCompatibilityVersion(CompatibilityVersion.Version_2_1) // Enables controllers to be resolved by DryIoc, OTHERWISE resolved by infrastructure .AddControllersAsServices(); services.AddScoped <AuthorizationFilter>(); //services.AddIdentityCore<IdentityUser>(); services.AddCors(); var builder = new ConfigurationBuilder().SetBasePath(Directory.GetCurrentDirectory()).AddJsonFile("appsettings.json"); var config = builder.Build(); DbProviderManager.LoadConfiguration(config); services.AddSingleton <IConfiguration>(config); // DryIOC var container = new Container().WithDependencyInjectionAdapter(services); container.Register <IApplicationContext, ApplicationContext>(); container.Register <IUserSettings, UserSettingsMemoryRepo>(); container.Register <IConnectionFactory, ConnectionFactory>(); container.Register <IUnitOfWork, UnitOfWork.UnitOfWork>(); container.Register <IUserSettingsRepository, UserSettingsRepository>(); container.Register <IOnDutiesRepository, OnDutiesRepository>(); container.Register <IUserSessionInfoRepository, UserSessionInfoRepository>(); container.Register <IMemberPreferences, MemberPreferencesRepository>(); container.Register <IResponderRepository, ResponderRepository>(); var serviceProvider = container.Resolve <IServiceProvider>(); // Automapper Configuration AutoMapperConfiguration.Configure(); return(serviceProvider); }
public static void Set(DbProviderOptions options, IList <Type> tableMaps = null, bool autoCreateTable = false) { DbProviderManager.Set(options); //注入覆盖 var provider = DbProviderManager.Get(options.Name); provider.AddService <IPageProvider, SqlitePageProvider>(); provider.AddService <IMigrateProvider, SqliteMigrateProvider>(); //表映射配置 if (tableMaps != null && tableMaps.Count > 0) { EntityUtil.SetMaps(tableMaps, options.Name); } //自动创建表 if (autoCreateTable) { var sqlMapper = new SqlMapper(options.Name); var migrate = sqlMapper.Migrate(); migrate.Init(sqlMapper); migrate.CreateTable(); } }
// This method gets called by the runtime. Use this method to add services to the container. public void ConfigureServices(IServiceCollection services) { services.Configure <CookiePolicyOptions>(options => { // This lambda determines whether user consent for non-essential cookies is needed for a given request. options.CheckConsentNeeded = context => true; options.MinimumSameSitePolicy = SameSiteMode.None; }); // Vincule a instância de configurações como um singleton e exponha-a como um tipo de opções (IOptions <AppSettings>) // Nota: Isso garante que a injeção de IOptions <T> e T seja possível e resolva services.Configure <AppSettings>(Configuration); DbProviderManager.LoadConfiguration(Configuration); //AddMultitenacy tem que ser adicionado aqui senão a injeção de dependencia não irá funcionar para o objeto CadInquilino (coisas do AspnetCore) services.AddMultitenancy <CadInquilino, InquilinoResolver>(); services.AddAutoMapper(AppDomain.CurrentDomain.GetAssemblies()); services.Configure <RazorViewEngineOptions>(o => { o.AreaViewLocationFormats.Clear(); o.ViewLocationExpanders.Add(new SubAreaViewLocationExpander()); }); services .AddMvc() .AddRazorOptions(options => { options.PageViewLocationFormats.Add("/Areas/Administrativo/SubAreas/Cadastros/Views/Shared/{0}.cshtml"); }) .SetCompatibilityVersion(CompatibilityVersion.Version_2_2) .AddJsonOptions(options => { options.SerializerSettings.ContractResolver = new Newtonsoft.Json.Serialization.DefaultContractResolver(); options.SerializerSettings.NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore; }); var connectionString = Configuration["DbConnectionStrings:ConnectionString"]; services.AddScoped <IInquilinoRepository>(p => new InquilinoRepository(connectionString, "siltec")); //Vincule a instância de configurações como um singleton e exponha-a como um tipo de opções(IOptions<SmartSettings>) services.Configure <SmartSettings>(Configuration.GetSection("SmartBusiness")); //Cria uma nova instancia de um repositorio cada vez que for acessado services.AddTransient(typeof(IRepositoryFactory <,>), typeof(RepositoryFactory <,>)); // Registrar a interface IHttpContextAccessor() para injeção de dependência services.AddSingleton <IHttpContextAccessor, HttpContextAccessor>(); services.ConfigureApplicationCookie(options => { options.LoginPath = "/Account/Login"; options.LogoutPath = "/Account/Logout"; options.AccessDeniedPath = "/Account/Login"; }); services.AddAuthentication(ConstantHelpers.SmartBusinesCookie) .AddCookie(ConstantHelpers.SmartBusinesCookie, options => { options.ReturnUrlParameter = "ReturnUrl"; options.AccessDeniedPath = new PathString("/Account/NaoAutorizado"); //especifica a página para qual o usuário deve ser redirecionado se ele tentar acessar uma página no qual não tem direito de acesso. options.LoginPath = new PathString("/Account/Login"); options.Cookie.Domain = "smartbusiness.com.br"; //options.CookieName = $"{ctx.Tenant.IdInquilino}.SmartBusines.Cookies"; }); services.AddAntiforgery(o => o.HeaderName = "XSRF-TOKEN"); services.AddSession(options => { options.IdleTimeout = TimeSpan.FromMinutes(40); options.Cookie.IsEssential = true; }); services.AddResponseCaching(); }
public static IServiceCollection AddApiSchedule(this IServiceCollection services, IConfiguration configuration) { var dbSettings = configuration.GetSection("Database").Get <List <DbSettings> >(); //data if (dbSettings != null && dbSettings.Any()) { foreach (var item in dbSettings) { DbProviderManager.Set ( item.Name, item.ConnectionString, item.ConnectionType, item.UseParameterPrefixInSql, item.UseParameterPrefixInParameter, item.ParameterPrefix, item.UseQuotationInSql, item.Debug ); } //注入SqlMapper services.AddScoped <ISqlMapper, SqlMapper>(); } else { DbProviderManager.Set ( "SQLite", "Data Source=schedule.db;", "System.Data.SQLite.SQLiteConnection,System.Data.SQLite", true, true, "@", false, false ); //注入SqlMapper services.AddScoped <ISqlMapper, SqlMapper>(); } services.AddTransient <ScheduleService>(); //mvc services.AddMvc(options => { options.Filters.Add <ApiActionFilter>(); }) //枚举序列化字符串 .AddJsonOptions(options => { options.SerializerSettings.Converters.Add(new Newtonsoft.Json.Converters.StringEnumConverter()); options.SerializerSettings.ContractResolver = new Newtonsoft.Json.Serialization.CamelCasePropertyNamesContractResolver(); }) .SetCompatibilityVersion(CompatibilityVersion.Version_2_1) ; return(services); }