Esempio n. 1
0
 public void OpenAtLoginChanged(bool value)
 {
     CodeSettings.OpenAtLogin = value;
     Electron.App.SetLoginItemSettings(new LoginSettings {
         OpenAtLogin = CodeSettings.OpenAtLogin
     });
     SuperCodeHelper.SaveSettings(CodeSettings);
 }
Esempio n. 2
0
        public async void ChangeSavePathAsync()
        {
            var savePath = await ElectronHelper.GetSelectPath();

            if (savePath.NotNull())
            {
                CodeSettings.SavePath = savePath;
                form.Refresh();
                SuperCodeHelper.SaveSettings(CodeSettings);
            }
        }
Esempio n. 3
0
 public void CloseToTrayChanged(bool value)
 {
     CodeSettings.CloseToTray = value;
     SuperCodeHelper.SaveSettings(CodeSettings);
 }
        /// <summary>
        /// 添加数据库
        /// </summary>
        /// <param name="services"></param>
        /// <param name="dbConfig"></param>
        /// <returns></returns>
        public async static Task AddDbAsync(this IServiceCollection services)
        {
            var codeSettings = new ConfigHelper().Get <CodeSettings>("codesettings", AppContext.BaseDirectory);
            var dbConfig     = services.BuildServiceProvider().GetRequiredService <IOptions <DbConfig> >().Value;

            //创建数据库
            if (dbConfig.CreateDb && codeSettings.InitDb)
            {
                await DbHelper.CreateDatabase(dbConfig);
            }

            #region FreeSql
            var freeSqlBuilder = new FreeSqlBuilder()
                                 .UseConnectionString(dbConfig.Type, dbConfig.ConnectionString)
                                 .UseAutoSyncStructure(dbConfig.SyncStructure && codeSettings.InitDb)
                                 .UseLazyLoading(false)
                                 .UseNoneCommandParameter(true);

            #region 监听所有命令
            if (dbConfig.MonitorCommand && codeSettings.InitDb)
            {
                freeSqlBuilder.UseMonitorCommand(cmd => { }, (cmd, traceLog) =>
                {
                    //Console.WriteLine($"{cmd.CommandText}\n{traceLog}\r\n");
                    Console.WriteLine($"{cmd.CommandText}\r\n");
                });
            }
            #endregion

            var fsql = freeSqlBuilder.Build();

            #region 初始化数据库
            //同步结构
            if (dbConfig.SyncStructure && codeSettings.InitDb)
            {
                DbHelper.SyncStructure(fsql, dbConfig: dbConfig);
            }

            //同步数据
            if (dbConfig.SyncData && codeSettings.InitDb)
            {
                await DbHelper.SyncData(fsql, dbConfig);
            }
            #endregion

            //生成数据包
            if (dbConfig.GenerateData && !dbConfig.CreateDb && !dbConfig.SyncData)
            {
                await DbHelper.GenerateSimpleJsonData(fsql);
            }

            #region 监听Curd操作
            if (dbConfig.Curd && codeSettings.InitDb)
            {
                fsql.Aop.CurdBefore += (s, e) =>
                {
                    Console.WriteLine($"{e.Sql}\r\n");
                };
            }
            #endregion

            #region 审计数据

            /*
             * //计算服务器时间
             * var serverTime = fsql.Select<T>().Limit(1).First(a => DateTime.local);
             * var timeOffset = DateTime.UtcNow.Subtract(serverTime);
             * fsql.Aop.AuditValue += (s, e) =>
             * {
             *  if (e.AuditValueType == FreeSql.Aop.AuditValueType.Insert)
             *  {
             *      switch (e.Property.Name)
             *      {
             *          case "CreatedTime":
             *              e.Value = DateTime.Now.Subtract(timeOffset);
             *              break;
             *      }
             *  }
             *  else if (e.AuditValueType == FreeSql.Aop.AuditValueType.Update)
             *  {
             *      switch (e.Property.Name)
             *      {
             *          case "ModifiedTime":
             *              e.Value = DateTime.Now.Subtract(timeOffset);
             *              break;
             *      }
             *  }
             * };
             */
            #endregion

            services.AddSingleton(fsql);

            #endregion

            codeSettings.InitDb = false;
            SuperCodeHelper.SaveSettings(codeSettings);
        }