예제 #1
0
        private void CreateSqlCeDb()
        {
            var    _fileName        = "easy.sdf";
            string connectionString = string.Format("Data Source={0}", _fileName);
            var    filePath         = Path.Combine(Directory.GetCurrentDirectory(), _fileName);

            if (!File.Exists(filePath)) //File.Create(filePath,1,FileOptions.Asynchronous);
            {
                const string assemblyName = "System.Data.SqlServerCe";
                const string typeName     = "System.Data.SqlServerCe.SqlCeEngine";

                var sqlceEngineHandle = Activator.CreateInstance(assemblyName, typeName);
                var engine            = sqlceEngineHandle.Unwrap();

                engine.GetType().GetProperty("LocalConnectionString").SetValue(engine, connectionString, null /*index*/);

                //engine.CreateDatabase();
                engine.GetType().GetMethod("CreateDatabase").Invoke(engine, null);

                //engine.Dispose();
                engine.GetType().GetMethod("Dispose").Invoke(engine, null);
            }
            ConnectionManager.RegisterConnectionType(DatabaseType.SqlCe, typeof(SqlceConnection));
            ConnectionManager.SetConnection(DatabaseType.SqlCe, connectionString);
            ConnectionManager.InitManager(DatabaseType.SqlCe, 1);
            var logger = Container.Resolve <ILoggerFacade>();

            OrmManager.SetDatabase(new SqlCeDatabase(logger));
        }
예제 #2
0
        private void CreateSqliteDb()
        {
            var    _fileName        = "easy.db";
            string connectionString = string.Format("Data Source={0}", _fileName);
            var    filePath         = Path.Combine(Directory.GetCurrentDirectory(), _fileName);

            if (!File.Exists(filePath)) //File.Create(filePath,1,FileOptions.Asynchronous);
            {
                System.Data.SQLite.SQLiteConnection.CreateFile(filePath);
            }
            ConnectionManager.RegisterConnectionType(DatabaseType.SQLite, typeof(SqliteConnection));
            ConnectionManager.SetConnection(DatabaseType.SQLite, connectionString);
            ConnectionManager.InitManager(DatabaseType.SQLite, 1);
            // var logger = Container.Resolve<ILoggerFacade>();
            OrmManager.SetDatabase(new SQLiteDatabase());
        }
예제 #3
0
        protected override void InitializeShell()
        {
            base.InitializeShell();

            //Application.Current.MainWindow = (Window)Shell;
            if (OrmManager.HasTable <SettingModel>())
            {
                var setting = OrmManager.GetDefault <SettingModel>();
                if (Theme.GetTheme(setting.Theme) != null)
                {
                    AppearanceManager.Current.ThemeSource = new Uri(Theme.GetTheme(setting.Theme).Path, UriKind.Relative);
                }
                var fontsize = Theme.GetThemeFrontSize(setting.FontSize);
                Application.Current.Resources[AppearanceManager.KeyDefaultFontSize] = fontsize.DefaultFontSize;
                Application.Current.Resources[AppearanceManager.KeyFixedFontSize]   = fontsize.FixedFontSize;
                AppearanceManager.Current.AccentColor = Theme.GetThemeColorByName(setting.Color).ColorAlias;
            }
            Application.Current.MainWindow.Show();
        }
예제 #4
0
        protected override void InitializeModules()
        {
            var modulePath = Path.Combine(Directory.GetCurrentDirectory(), MODULES_PATH);

            if (!Directory.Exists(modulePath))
            {
                Directory.CreateDirectory(modulePath);
            }
            var directoryCatalog = (DirectoryModuleCatalog)ModuleCatalog;

            if (directoryCatalog.Items.Count > 0)
            {
                var asms = directoryCatalog.Items.Select(x => Assembly.LoadFrom(((ModuleInfo)x).Ref)).ToList();
                asms.Add(typeof(Bootstrapper).Assembly);
                Register(asms);
            }
            else
            {
                Register(new[] { typeof(Bootstrapper).Assembly });
            }
            Container.RegisterType <IEnumerable <INavigateProvider>, INavigateProvider[]>();
            Container.RegisterType <IEnumerable <ICommandInterpreter>, ICommandInterpreter[]>();
            Container.RegisterType <IEnumerable <IDataMigration>, IDataMigration[]>();
            Container.RegisterType <IEnumerable <QQRob.Services.IAutoAnswer>, QQRob.Services.IAutoAnswer[]>();
            // Container.RegisterInstance(Container);
            base.InitializeModules();

            var schemaBuilder = new SchemaBuilder(Container.Resolve <IDataMigrationInterpreter>());

            if (!OrmManager.HasTable <Tables.OrmTablesInfo>())
            {
                schemaBuilder.CreateTable("OrmTablesInfo", table => table
                                          .Column <int>("Id", column => column.PrimaryKey().Identity())//PrimaryKey().
                                          .Column <string>("DataMigrationClass")
                                          .Column <int>("Version"));
            }
            if (!OrmManager.HasTable <SettingModel>())
            {
                schemaBuilder.CreateTable("Setting", table => table
                                          .Column <int>("Id", column => column.PrimaryKey().Identity())//PrimaryKey().
                                          .Column <string>("Theme")
                                          .Column <string>("FontSize")
                                          .Column <string>("Color"));
                OrmManager.Insert(new SettingModel());
                var setting = new SettingModel();

                AppearanceManager.Current.ThemeSource = new Uri(Theme.GetTheme(setting.Theme).Path, UriKind.Relative);
                var fontsize = Theme.GetThemeFrontSize(setting.FontSize);
                Application.Current.Resources[AppearanceManager.KeyDefaultFontSize] = fontsize.DefaultFontSize;
                Application.Current.Resources[AppearanceManager.KeyFixedFontSize]   = fontsize.FixedFontSize;
                AppearanceManager.Current.AccentColor = Theme.GetThemeColorByName(setting.Color).ColorAlias;
            }

            /*       var links = Container.ResolveAll<INavigateProvider>();
             * var shell = (this.Shell as MainWindow);
             * if (shell != null && links.Count() > 0)
             * {
             *     foreach (var link in links.Where(x => x.Name == NavigateProvider.Main))
             *     {
             *         //  linkGroupCollection.Add(link.GetLinkGroup());
             *
             *         shell.AddLinkGroups(new LinkGroupCollection() { link.GetLinkGroup() });//.AddLinkGroups(linkGroupCollection);
             *
             *     }
             *     foreach (var link in links.Where(x => x.Name == NavigateProvider.Title))
             *     {
             *         shell.AddTitleLinks(link.GetLinkGroup().Links);
             *     }
             * }*/
            var datemanager = Container.Resolve <IDataMigrationManager>();
            var features    = datemanager.GetFeaturesThatNeedUpdate();

            datemanager.Update(features);
        }