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;
            }
        }
Esempio n. 3
0
        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) { }
            //    }
            //}
        }
Esempio n. 4
0
        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);
        }
Esempio n. 5
0
 public PersistenceProviderContainer(IConfiguration config)
 {
     Provider = new PostgreSQLProvider(config.GetConnectionString("DefaultConnection"));
 }
Esempio n. 6
0
        public PersistenceProviderContainer()
        {
            var connectionString = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;

            _provider = new PostgreSQLProvider(connectionString);
        }