private void SyncThemeAndColor()
 {
     Setting.Color    = this.SelectedAccentColor.Name;
     Setting.Theme    = this.SelectedTheme.DisplayName;
     Setting.FontSize = Theme.GetThemeFrontSizeByFont(AppearanceManager.Current.FontSize).Name;
     OrmManager.Update(Setting);
 }
Пример #2
0
        public DefaultMessageSettingViewModel(IEnumerable <IAutoAnswer> answers)
        {
            Answers  = answers;
            Settings = answers.Select(x => new SettingInfo {
                Name = x.Name, Key = x.SettingKey
            }).ToList();
            Items        = OrmManager.Fetch <QQState>(x => x.Id > 0);
            SavedCommand = new Command(() => {
                foreach (var setting in Settings)
                {
                    SelectedItem.SetState(setting.Key, setting.Selected);
                }
                OrmManager.Update(SelectedItem);
                var client = SelectedItem.GetClient();
                if (client != null)
                {
                    client.DefaultState = SelectedItem.State;
                }
            });
            SelectedCommand = new Command(() => {
                if (string.IsNullOrEmpty(SelectedItem.State))
                {
                    SelectedItem.State = "{}";
                }
                for (int i = 0; i < Settings.Count; i++)
                {
                    Settings[i].Selected = SelectedItem.GetState <bool>(Settings[i].Key);
                }

                RaisePropertyChanged(nameof(Settings));
                PrevSelectedItem = SelectedItem;
            }, () => SelectedItem != PrevSelectedItem && SelectedItem != null);
        }
        public GroupMessageSettingViewModel(IEnumerable <IAutoAnswer> answers)
        {
            Answers  = answers;
            Settings = answers.Select(x => new SettingInfo {
                Name = x.Name, Key = x.SettingKey
            }).ToList();
            Items        = OrmManager.Fetch <GroupInfo>(x => x.StillIn && x.QQNum == WorkContext.GetState <long>(Constract.CurrentQQ));
            SavedCommand = new Command(() => {
                foreach (var setting in Settings)
                {
                    SelectedItem.SetState(setting.Key, setting.Selected);
                }
                OrmManager.Update(SelectedItem);
            });
            SelectedCommand = new Command(() => {
                if (string.IsNullOrEmpty(SelectedItem.State))
                {
                    SelectedItem.State = WorkContext.GetState <QQState>(Constract.CurrentQQState).State;
                }
                for (int i = 0; i < Settings.Count; i++)
                {
                    Settings[i].Selected = SelectedItem.GetState <bool>(Settings[i].Key);
                }

                RaisePropertyChanged(nameof(Settings));
                PrevSelectedItem = SelectedItem;
            }, () => SelectedItem != PrevSelectedItem && SelectedItem != null);
        }
Пример #4
0
        private void Client_Logined(object sender, LoginSucessedEventArgs e)
        {
            var state = WorkContext.GetState <QQState>(Constract.CurrentQQState);

            state.Logined = true;
            state.SetCookies(Constract.LoginCookies, e.JsonResult);
            // state.SetCookies(Constract.QQSession, e.Session);
            OrmManager.Update(state);
            var clientManager = ClientManager.GetClientManagerUser(Container, state);

            clientManager.QQ.Logined          = true;
            clientManager.QQ.State            = state.State;
            clientManager.Client.DefaultState = state.State;
            if (e.ShowMainWindow)
            {
                App.Current.Dispatcher.Invoke(() =>
                {
                    new MainWindow(Container).Show();
                    Logger.Debug("MainWindow has been created and displayed.");
                    // 3.Closes the SignIn window.
                    (Application.Current.Resources[LoginWindow.Key] as LoginWindow)?.Close();
                    Logger.Debug("LoginWindow has been closed.");
                });
            }
        }
Пример #5
0
        private void Client_Logined(object sender, LoginSucessedEventArgs e)
        {
            // OrmManager.Update(state);
            var state = OrmManager.Get <Models.QQState>(x => x.QQNum == e.Session.QQNum);

            var clientManager = ClientManager.GetClientManagerUser(Container, new Models.QQState());

            clientManager.QQ.QQNum   = e.Session.QQNum;
            clientManager.QQ.Logined = true;
            clientManager.QQ.SetCookies(Constract.LoginCookies, e.JsonResult);
            //clientManager.QQ.SetCookies(Constract.QQSession, e.Session);
            if (state != null)
            {
                clientManager.QQ.Id = state.Id;
                OrmManager.Update(clientManager.QQ);
            }
            else
            {
                OrmManager.Insert(clientManager.QQ);
            }
            WorkContext.SetState(Constract.CurrentQQState, clientManager.QQ);
            WorkContext.SetState(Constract.CurrentQQ, clientManager.QQ.QQNum);
            clientManager.Client.DefaultState = clientManager.QQ.State;
            ClientManager.ResetKey();
            //throw new NotImplementedException();
            if (e.ShowMainWindow)
            {
                App.Current.Dispatcher.Invoke(() =>
                {
                    new MainWindow(Container).Show();
                    Logger.Debug("MainWindow has been created and displayed.");
                    // 3.Closes the SignIn window.
                    (Application.Current.Resources[LoginWindow.Key] as LoginWindow)?.Close();
                    Logger.Debug("LoginWindow has been closed.");
                });
            }
        }
Пример #6
0
        public void Update(string feature)
        {
            if (_processedFeatures.Contains(feature))
            {
                return;
            }

            _processedFeatures.Add(feature);


            var migrations = GetDataMigrations(feature);

            // apply update methods to each migration class for the module
            foreach (var migration in migrations)
            {
                var tempMigration = migration;

                // get current version for this migration
                var dataMigrationRecord = GetDataMigrationRecord(tempMigration);

                var current = 0;
                if (dataMigrationRecord != null)
                {
                    current = dataMigrationRecord.Version;
                }

                try {
                    // do we need to call Create() ?
                    if (current == 0)
                    {
                        // try to resolve a Create method

                        var createMethod = GetCreateMethod(migration);
                        if (createMethod != null)
                        {
                            current = (int)createMethod.Invoke(migration, new object[0]);
                        }
                    }

                    var lookupTable = CreateUpgradeLookupTable(migration);

                    while (lookupTable.ContainsKey(current))
                    {
                        try {
                            // Logger.Information("Applying migration for {0} from version {1}.", feature, current);
                            current = (int)lookupTable[current].Invoke(migration, new object[0]);
                        }
                        catch  {
                            throw;
                        }
                    }

                    // if current is 0, it means no upgrade/create method was found or succeeded
                    if (current == 0)
                    {
                        continue;
                    }
                    if (dataMigrationRecord == null)
                    {
                        OrmManager.Insert(new Tables.OrmTablesInfo {
                            Version = current, DataMigrationClass = migration.GetType().FullName
                        });
                    }
                    else
                    {
                        dataMigrationRecord.Version = current;
                        OrmManager.Update(dataMigrationRecord);
                    }
                }
                catch (Exception ex) {
                    Logger.Log(ex.Message, Category.Exception, Priority.High);
                    //throw new Exception(string.Format("Error while running migration version {0} for {1}.", current, feature), ex);
                }
            }
        }
Пример #7
0
 public void Update(object Entity, string criterias)
 {
     _OrmManager.Update(Entity, criterias);
 }