public static void TryPostgreSQL() { if (!IsTryPgSql) { try { PostgreSQLProvider db = new PostgreSQLProvider(); var conn = db.GetAdapter(); IsTryPgSql = true; } catch { var message = ErrorMessage.GetThrowMessage( "You need to refer to Npgsql 3.2.7", "你需要引用 Npgsql 3.2.7及以上版本"); throw new Exception(message); } } }
/// <summary> /// 创建参数回调 /// </summary> /// <param name="item">参数对象</param> protected override void OnCreate(CommandParameter item) { if (item.Value == null) { return; } if (item.Value.GetType() != item.RealType) { item.Value = TypeExtensions.Convert(item.Value, item.RealType); } if (item.RealType.IsEnum) { //item.Properties["PostgreSQLDbType"] = TypeExtensions.Convert("Int64", PostgreSQLProvider.GetDbType()); item.RealType = typeof(long); item.Value = TypeExtensions.Convert <long>(item.Value); return; } if (item.RealType.IsArray && item.RealType.GetElementType() == typeof(string)) { item.Properties["NpgsqlDbType"] = TypeExtensions.Convert("Array,Text", PostgreSQLProvider.GetDbType()); return; } if (item.RealType.IsArray && item.RealType.GetElementType() != typeof(byte)) { item.Properties["NpgsqlDbType"] = TypeExtensions.Convert("Json", PostgreSQLProvider.GetDbType()); item.Value = item.Value == null ? null : JSON.ToJSON(item.Value); return; } if ( item.RealType == typeof(object) || TypeExtensions.IsAnonymousType(item.RealType) || TypeExtensions.IsInheritFrom(item.RealType, typeof(System.Collections.Generic.IDictionary <string, object>)) || (item.RealType.IsClass && !TypeExtensions.IsSystemBaseType(item.RealType)) ) { item.Properties["NpgsqlDbType"] = TypeExtensions.Convert("Json", PostgreSQLProvider.GetDbType()); item.RealType = typeof(object); item.Value = item.Value == null ? null : JSON.ToJSON(item.Value); return; } }
public static void Init(IServiceProvider serviceProvider, IWebHostEnvironment env) { IAdminSecurityApplication securityApplication = new AdminSecurityApplication(); securityApplication.ResetIpFilter(); securityApplication = null; var cache = SqlCache.Instance; ISqlProvider provider = new SqlServerProvider(); provider.Init(cache); provider = new MySqlProvider(); provider.Init(cache); provider = new SqliteProvider(); provider.Init(cache); provider = new PostgreSQLProvider(); provider.Init(cache); provider = null; //var assList = AppDomain.CurrentDomain.GetAssemblies().Where(q => q.FullName?.Contains("Plugin") ?? false).ToList(); //foreach (var ass in assList) { // SqlProviderInit(cache, ass); //} //var dir = Path.Combine(env.ContentRootPath, "Plugins"); //if (Directory.Exists(dir)) { // var files = Directory.GetFiles(dir, "*.Plugin*.dll", SearchOption.AllDirectories); // foreach (var file in files) { // try { // var ass = Assembly.LoadFrom(file); // SqlProviderInit(cache, ass); // } catch (Exception) { } // } //} }
public static void AddWorkflow(this IServiceCollection services, IConfiguration configuration) { var connectionString = configuration[$"ConnectionStrings:DefaultConnection"]; if (string.IsNullOrEmpty(connectionString)) { throw new Exception("Please init ConnectionString before calling the Runtime!"); } //TODO If you have a license key, you have to register it here //WorkflowRuntime.RegisterLicense("your license key text"); var dbProvider = new PostgreSQLProvider(connectionString); var builder = new WorkflowBuilder <XElement>( dbProvider, new OptimaJet.Workflow.Core.Parser.XmlWorkflowParser(), dbProvider ).WithDefaultCache(); var runtime = new WorkflowRuntime() .WithBuilder(builder) .WithPersistenceProvider(dbProvider) .EnableCodeActions() .SwitchAutoUpdateSchemeBeforeGetAvailableCommandsOn() .WithActionProvider(new ActionProvider()) .AsSingleServer(); //events subscription runtime.OnProcessActivityChanged += (sender, args) => { }; runtime.OnProcessStatusChangedAsync += (sender, args, token) => { return(ProcessStatusChanged(args, runtime)); }; //TODO If you have planned to use Code Actions functionality that required references to external assemblies you have to register them here //runtime.RegisterAssemblyForCodeActions(Assembly.GetAssembly(typeof(SomeTypeFromMyAssembly))); services.AddSingleton(s => runtime); }
public PersistenceProviderContainer(IConfiguration config) { Provider = new PostgreSQLProvider(config.GetConnectionString("DefaultConnection")); }
public PersistenceProviderContainer() { var connectionString = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString; _provider = new PostgreSQLProvider(connectionString); }