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();
        }
Beispiel #2
0
        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);
            }
        }
Beispiel #4
0
        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();
                }
            }
        }