예제 #1
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();
                }
            }
        }