/// <summary> /// Конструктор, принимает объект иконки трея /// </summary> /// <param name="tb"></param> public HeadViewModel(TaskbarIcon tb) { try { dispatcher = Dispatcher.CurrentDispatcher; thread_object = new Object(); //инициализируем объект иконки и объект класса всплывающих сообщений this.Tb = tb; mb = new MyBalloon(tb.GetPopupTrayPosition().X, tb.GetPopupTrayPosition().Y); mb.baloon_panel.ItemsSource = FormatText.baloon_msg; mb.Show(); //инициализируем переменную для хранения настроек окна CheckBoxSettings = new MySettings(); //инициализируем сериализатор formatter = new XmlSerializer(typeof(MySettings)); //загружаем данные из xml при открытии приложения Deserializable(); //выгружаем из бд список аккаунтов dbAccounts = new AccountContext(); dbAccounts.Accounts.Load(); Accounts = dbAccounts.Accounts.Local.ToBindingList(); //выгружаем из бд офсеты dbOffsets = new OffsetContext(); dbOffsets.Offsets.Load(); offsetsFromDb = dbOffsets.Offsets.FirstOrDefault((p) => p.Version == "1.5.5_2591"); if (offsetsFromDb != null) { OpenOffsets(); } //выгружаем настройки из бд, в будующем планируется выполнять этот шаг через вебсервис dbSettings = new SettingContext(); dbSettings.Settings.Load(); //генерируем уникльный ключ компьютера String serial = CalcMethods.GenerateSerialNumber(); //проверяем, есть ли в бд настройки, привязанные к этому ключу settings = dbSettings.Settings.FirstOrDefault((p) => p.Serialnumber == serial); //если настройки отсутствуют, то создаем новые и заносим в бд if (settings == null) { settings = new Models.Login.Setting { Downloader = "Downloader/12650 MailRuGameCenter/1265", Serialnumber = CalcMethods.GenerateSerialNumber(), UserId_1 = CalcMethods.RandomStringValue(20), UserId_2 = CalcMethods.RandomStringValue(20), Filepath = String.Empty }; dbSettings.Settings.Add(settings); dbSettings.SaveChanges(); } ApplySettings(); } catch (Exception ex) { throw new Exception(ex.Message); } }