private void StartExport(object sender, RoutedEventArgs e) { ExportType temp; if (PdfExportCheck.IsChecked == true) { temp = ExportType.Pdf; } else { temp = ExportType.Excel; } AsyncExecute ae = new AsyncExecute(() => { try { ToExcel(temp); } catch (Exception ex) { Interaction.MsgBox("В процессе экспорта произошла ошибка: " + ex.Message); } }); ae.ShowDialog(); Close(); }
private void ImportProject(object sender, RoutedEventArgs e) { try { OpenFileDialog openFileDialog1 = new OpenFileDialog(); openFileDialog1.InitialDirectory = "c:\\"; openFileDialog1.Filter = "json files (*.json)|*.json|All files (*.*)|*.*"; openFileDialog1.FilterIndex = 1; openFileDialog1.RestoreDirectory = true; openFileDialog1.ShowDialog(); if (!string.IsNullOrEmpty(openFileDialog1.FileName)) { AsyncExecute ae = new AsyncExecute(async() => { using (FileStream stream = new FileStream(openFileDialog1.FileName, FileMode.Open, FileAccess.Read)) using (StreamReader reader = new StreamReader(stream)) { Project tmp = JsonConvert.DeserializeObject <Project>(reader.ReadToEnd()); Console.WriteLine("Десериализован проект {0}, добавляю в базу данных", tmp.Name); App.PC.Projects.Add(tmp); await App.TrySaveChanges(); } }); ae.ShowDialog(); UpdateProjectList(); } } catch (Exception ex) { Interaction.MsgBox("Не удается провести импорт: " + ex.Message); } }
public void JsonExport() { try { SaveFileDialog saveFileDialog1 = new SaveFileDialog(); saveFileDialog1.Filter = "json files (*.json)|*.json|All files (*.*)|*.*"; saveFileDialog1.FilterIndex = 1; saveFileDialog1.RestoreDirectory = true; saveFileDialog1.ShowDialog(); if (!string.IsNullOrEmpty(saveFileDialog1.FileName)) { AsyncExecute ae = new AsyncExecute(() => { App.PC.Configuration.LazyLoadingEnabled = false; App.PC.Configuration.ProxyCreationEnabled = false; Project tmp = App.PC.Projects.Where(p => p.Id == ProjectId).First(); using (FileStream stream = new FileStream(saveFileDialog1.FileName, FileMode.OpenOrCreate, FileAccess.ReadWrite)) using (StreamWriter writer = new StreamWriter(stream)) { writer.Write(JsonConvert.SerializeObject(tmp)); Console.WriteLine("Произведен экспорт проекта {0}", tmp.Name); } App.PC.Configuration.LazyLoadingEnabled = true; App.PC.Configuration.ProxyCreationEnabled = true; }); ae.ShowDialog(); } } catch (Exception ex) { Interaction.MsgBox("Не удается провести экспорт: " + ex.Message); } }
private async void StartSync(object sender, RoutedEventArgs e) { OpenFileDialog openFileDialog1 = new OpenFileDialog(); openFileDialog1.InitialDirectory = "c:\\"; openFileDialog1.Filter = "xlsx files (*.xlsx)|*.xlsx|All files (*.*)|*.*"; openFileDialog1.FilterIndex = 1; openFileDialog1.RestoreDirectory = true; openFileDialog1.ShowDialog(); if (!string.IsNullOrEmpty(openFileDialog1.FileName)) { AsyncExecute ae = new AsyncExecute(() => { try { LoadFromExcel(openFileDialog1.FileName); } catch (Exception ex) { Interaction.MsgBox("Не удается считать данные из файла: " + ex.Message); App.Current.Dispatcher.Invoke(() => Close()); } }); ae.ShowDialog(); if (RewriteCheck.IsChecked == true) { foreach (var entity in App.PC.Items) { App.PC.Items.Remove(entity); } await App.TrySaveChanges(); foreach (var item in Items) { App.PC.Items.Add(item); } await App.TrySaveChanges(); Console.WriteLine("База данных синхронизирована! Добавлено {0} элементов", Items.Count); Interaction.MsgBox("База данных успешно синхронизирована!"); AppConsole.Restart(); } else if (ConcatCheck.IsChecked == true) { foreach (var item in Items) { App.PC.Items.Add(item); } await App.TrySaveChanges(); Console.WriteLine("База данных синхронизирована! Добавлено {0} элементов", Items.Count); Interaction.MsgBox("База данных успешно синхронизирована!"); AppConsole.Restart(); } else if (UpdateCheck.IsChecked == true) { foreach (var item in Items) { foreach (var olditem in App.PC.Items) { if (item.Name == olditem.Name) { olditem.Type = item.Type; olditem.Value = item.Value; } } } await App.TrySaveChanges(); Console.WriteLine("База данных синхронизирована! Добавлено {0} элементов", Items.Count); Interaction.MsgBox("База данных успешно синхронизирована!"); AppConsole.Restart(); } } }