/// <summary> /// Вызывается при обычном запуске приложения пользователем. Будут использоваться другие точки входа, /// если приложение запускается для открытия конкретного файла, отображения /// результатов поиска и т. д. /// </summary> /// <param name="e">Сведения о запросе и обработке запуска.</param> protected async override void OnLaunched(LaunchActivatedEventArgs e) { if (!string.IsNullOrEmpty(e.Arguments)) { int noteId = Convert.ToInt32(e.Arguments.Substring(e.Arguments.IndexOf("=") + 1)); ScheduledToast.DeleteScheduledToast(noteId); SimpleNotesModel model = new SimpleNotesModel(); SNItem item = model.GetItemById(noteId); item.N_timer_timestamp = 0; model.EditNote(item); } // //GeographicRegion userRegion = new GeographicRegion(); //System.Diagnostics.Debug.WriteLine("=>" + Windows.System.UserProfile.GlobalizationPreferences.Languages[0]); // AppConstants appConst = new AppConstants(); // Инициализируем БД StorageFile dbFile = null; bool isExists = true; try { dbFile = await StorageFile.GetFileFromPathAsync(AppConstants.DataBasePath); } catch (FileNotFoundException) { isExists = false; } if (!isExists) { StorageFile input = await Windows.ApplicationModel.Package.Current.InstalledLocation.GetFileAsync(@"Database\simple-notes.db3"); StorageFolder folder = ApplicationData.Current.LocalFolder; StorageFile output = await folder.CreateFileAsync("simple-notes.db3", CreationCollisionOption.ReplaceExisting); IBuffer buffer = await FileIO.ReadBufferAsync(input); await FileIO.WriteBufferAsync(output, buffer); string categoryName = AppConstants.AppMessages[AppConstants.UsedLanguage]["init_category"]; using (var db = new SQLitePCL.SQLiteConnection(AppConstants.DataBasePath)) { using (var stmt = db.Prepare("insert into categories (c_caption) values (?)")) { stmt.Bind(1, categoryName); stmt.Step(); } } } // ************** #if DEBUG if (System.Diagnostics.Debugger.IsAttached) { this.DebugSettings.EnableFrameRateCounter = true; } #endif Frame rootFrame = Window.Current.Content as Frame; // Не повторяйте инициализацию приложения, если в окне уже имеется содержимое, // только обеспечьте активность окна if (rootFrame == null) { // Создание фрейма, который станет контекстом навигации, и переход к первой странице rootFrame = new Frame(); // TODO: Измените это значение на размер кэша, подходящий для вашего приложения rootFrame.CacheSize = 1; // Задайте язык по умолчанию rootFrame.Language = Windows.Globalization.ApplicationLanguages.Languages[0]; if (e.PreviousExecutionState == ApplicationExecutionState.Terminated) { // TODO: Загрузить состояние из ранее приостановленного приложения } // Размещение фрейма в текущем окне Window.Current.Content = rootFrame; } if (rootFrame.Content == null) { // Удаляет турникетную навигацию для запуска. if (rootFrame.ContentTransitions != null) { this.transitions = new TransitionCollection(); foreach (var c in rootFrame.ContentTransitions) { this.transitions.Add(c); } } rootFrame.ContentTransitions = null; rootFrame.Navigated += this.RootFrame_FirstNavigated; // Если стек навигации не восстанавливается для перехода к первой странице, // настройка новой страницы путем передачи необходимой информации в качестве параметра // навигации if (!rootFrame.Navigate(typeof(MainPage), e.Arguments)) { throw new Exception("Failed to create initial page"); } } // Обеспечение активности текущего окна Window.Current.Activate(); }
private async void btnSave_Click(object sender, RoutedEventArgs e) { if (string.IsNullOrEmpty(txtNoteCaption.Text) || string.IsNullOrWhiteSpace(txtNoteCaption.Text)) { await (new MessageDialog(AppConstants.AppMessages[AppConstants.UsedLanguage]["np_verifyNoteCaption"]).ShowAsync()); return; } SimpleNotesModel model = new SimpleNotesModel(); SNItem item = new SNItem(); if (_noteItem == null) { item.N_caption = txtNoteCaption.Text; item.N_cid = (cboNoteCategory.SelectedItem as Category).c_id; item.N_text = txtNoteText.Text; item.N_timestamp = (int)(DateTime.UtcNow.Subtract(new DateTime(1970, 1, 1))).TotalSeconds; if (TmpShedule.IsChanged) { item.N_timer_timestamp = TmpShedule.Schedule; TmpShedule.Clear(); ScheduledToast.CreateScheduledToast(item.N_timer_timestamp, model.GetLastId(), item.N_caption); } if (TmpPassword.IsChanged) { string hash = Hash.ComputeHash(TmpPassword.NewPassword); string encryptedNoteText = Cipher.Encrypt(txtNoteText.Text, TmpPassword.NewPassword, hash); TmpPassword.Clear(); item.N_text = encryptedNoteText; item.N_crypted = 1; item.N_shadow = hash; } model.AddNote(item); } else { item.N_id = _noteItem.N_id; item.N_caption = txtNoteCaption.Text; item.N_cid = (cboNoteCategory.SelectedItem as Category).c_id; item.N_text = txtNoteText.Text; if (TmpShedule.IsChanged) { item.N_timer_timestamp = TmpShedule.Schedule; TmpShedule.Clear(); ScheduledToast.DeleteScheduledToast(item.N_id); ScheduledToast.CreateScheduledToast(item.N_timer_timestamp, item.N_id, item.N_caption); } else { item.N_timer_timestamp = _noteItem.N_timer_timestamp; } if (TmpPassword.IsChanged) { string hash = Hash.ComputeHash(TmpPassword.NewPassword); string encryptedNoteText = Cipher.Encrypt(item.N_text, TmpPassword.NewPassword, hash); TmpPassword.Clear(); item.N_text = encryptedNoteText; item.N_crypted = 1; item.N_shadow = hash; } else { if (_noteItem.N_crypted == 1) { item.N_text = Cipher.Encrypt(item.N_text, TmpPassword.NewPassword, _noteItem.N_shadow); TmpPassword.Clear(); item.N_crypted = 1; item.N_shadow = _noteItem.N_shadow; } } model.EditNote(item); } Frame.GoBack(); }