Esempio n. 1
0
        public MainLogicModule(DistributorModule distributor, DbModule db)
        {
            Contract.Requires(distributor != null);
            Contract.Requires(db != null);

            _db          = db;
            _distributor = distributor;
            _queue       = GlobalQueue.Queue;
        }
Esempio n. 2
0
        public static Module GetModule(string query)
        {
            DbModule module = null;

            if (query.StartsWith("db") && Regex.IsMatch(query, Patterns.DbModule))
            {
                module = new DbModule();
            }
            return(module);
        }
Esempio n. 3
0
        private static void MigrateDbViews()
        {
            Helper.Log("Start migrating database views");

            DataTable dt = SQLSvrDbi.GetViews();

            if (dt != null && dt.Rows.Count > 0)
            {
                foreach (DataRow row in dt.Rows)
                {
                    DbModule module = new DbModule(row["SchemaName"].ToString(),
                                                   row["ViewName"].ToString(), row["ViewDefinition"].ToString(),
                                                   ModuleType.View);

                    module.Migrate();
                }
            }

            Helper.Log("Finished migrating database views");
        }
Esempio n. 4
0
        private static void MigrateDbStoredProcedures()
        {
            Helper.Log("Start migrating stored procedures");

            DataTable dt = SQLSvrDbi.GetStoredProcedures();

            if (dt != null && dt.Rows.Count > 0)
            {
                foreach (DataRow row in dt.Rows)
                {
                    DbModule module = new DbModule(
                        row["SchemaName"].ToString(), row["ProcedureName"].ToString(),
                        row["ProcedureDefinition"].ToString(), ModuleType.StoredProcedure);

                    module.Migrate();
                }
            }

            Helper.Log("Finished migrating stored procedures");
        }
Esempio n. 5
0
        public void CreateDb(CreateDbOptions options)
        {
            string connectionString = GetConnectionString();

            // confirm that the user wants to continue to protect against accidental running of DbCreator in QA or PROD.
            if (!UserConfirmedDbCreatorAction(connectionString))
            {
                WriteLine();
                WriteLine(">> No action was performed because user did NOT confirm action.");
                WriteLine("Press ENTER to close DbCreator.");
                Console.ReadLine();

                return;
            }

            var dbModule = new DbModule(connectionString);

            dbModule.KillActiveConnections();

            if (options.DropDb)
            {
                dbModule.DropDatabase();
            }

            CreateDatabaseAndSchema();

            if (options.LoadSeedData)
            {
                LoadSeedData();
            }

            if (options.LoadTestData)
            {
                LoadTestData();
            }
        }
Esempio n. 6
0
        private static void ExecutePlugin(Assembly assembly, bool force = false)
        {
            if (!BootstrapperSection.Instance.PluginLoader.Enabled && !force)
            {
                return;
            }

            var plugins = assembly.GetExportedTypes().Where(x => typeof(IPlugin).IsAssignableFrom(x) && x.IsClass && !x.IsAbstract);

            foreach (var plugin in plugins)
            {
                if (_executedPlugins.Contains(plugin.AssemblyQualifiedName))
                {
                    continue;
                }

                _executedPlugins.Add(plugin.AssemblyQualifiedName);

                Trace.TraceInformation("[PluginLoader]: Found implementation of IPlugin '{0}'", plugin.FullName);
                IPlugin instance = null;
                using (DisposableTimer.StartNew(plugin.FullName))
                {
                    try
                    {
                        instance = Activator.CreateInstance(plugin) as IPlugin;
                    }
                    catch (Exception ex)
                    {
                        Trace.TraceError("[PluginLoader]:Error activating instance of type '{0}'. {1}", plugin,
                                         ex.Message);
                    }
                    finally
                    {
                        if (instance != null)
                        {
                            //verifica se o plugin está instalado
                            using (var ctx = new DbFileContext())
                            {
                                var module = ctx.DbModules.FirstOrDefault(
                                    x => x.Name.Equals(instance.PluginName, StringComparison.OrdinalIgnoreCase));

                                if (module == null)
                                {
                                    module      = new DbModule();
                                    module.Name = instance.PluginName;
                                    ctx.DbModules.Add(module);
                                    ctx.SaveChanges();
                                }

                                if (!module.Status)
                                {
                                    //instalar
                                    using (DisposableTimer.StartNew("Installing {0}".Fmt(module.Name)))
                                    {
                                        try
                                        {
                                            instance.Install();
                                            module.Status = true;
                                            ctx.SaveChanges();
                                        }
                                        catch (Exception ex)
                                        {
                                            Trace.TraceError(ex.ToString());
                                        }
                                    }
                                }
                            }
                            Trace.TraceInformation("[PluginLoader]: Trying to Execute Plugin: {0}", instance.PluginName);
                            try
                            {
                                instance.Start();
                                Trace.TraceInformation("[PluginLoader]: SUCCESS Executing Plugin: {0}", instance.PluginName);
                            }
                            catch (Exception ex)
                            {
                                Trace.TraceError(ex.Message);
                            }
                        }
                    }
                }
            }
        }