public static void AddPublisher(PublishersRange publisher, S21Settings settings)
        {
            ExcelPublisher.ExcelPublisher excel = new ExcelPublisher.ExcelPublisher(settings);
            if (excel.CheckConnect() == true)
            {
                var           datas = GetDataPublisher(settings) as List <PublishersRange>;
                List <string> names = new List <string>(); // Будет хранить имена всех возвещателей, который находяться в excel.
                foreach (var data in datas)
                {
                    names.Add(data.Name);
                }
                names.Add(publisher.Name);
                names.Sort();
                int index = names.IndexOf(publisher.Name) + 2; // +2 -- есть общие начальные колонки в ексель таблице.

                excel.AddPublisher(publisher, index);
            }
        }
Exemplo n.º 2
0
        public void AddPublisher(PublishersRange publisher, int startIndex)
        {
            using (var p = new ExcelPackage(package.File))
            {
                ExcelWorksheet ws = package.Workbook.Worksheets[NameTable];
                ws.InsertRow(startIndex, 1);
                ws.Cells[$"A{startIndex}"].Value = publisher.Name;        // Имя Фамилия возвещателя
                ws.Cells[$"B{startIndex}"].Value = publisher.DateBirth;   // Дата рождения
                ws.Cells[$"C{startIndex}"].Value = publisher.BuptismDate; // Дата крещения
                ws.Cells[$"D{startIndex}"].Value = publisher.Adress;      // Адресс
                ws.Cells[$"E{startIndex}"].Value = publisher.Gender;      // Пол
                ws.Cells[$"F{startIndex}"].Value = publisher.Pioner;      // Пионер
                ws.Cells[$"G{startIndex}"].Value = publisher.Mobile1;     // Номер телефона 1
                ws.Cells[$"H{startIndex}"].Value = publisher.Mobile2;     // Номер телефона 2
                ws.Cells[$"I{startIndex}"].Value = publisher.Appointment; // Назначение (братья)

                package.Save();
            }
        }
Exemplo n.º 3
0
        private async void SaveButton_Click(object sender, RoutedEventArgs e)
        {
            if (TextboxName.Text == String.Empty ||
                TextboxSurname.Text == String.Empty ||
                TextboxAddress.Text == String.Empty ||
                TextBoxMobile1.Text == String.Empty ||
                TextBoxMobile2.Text == String.Empty
                )
            {
                MyMessageBox.Show("Необходимо заполнить все поля!", "Ошибка!"); goto exitMethod;
            }
            if ((CheckBoxMen.IsChecked == false && CheckBoxWomen.IsChecked == false) ||
                (CheckBoxMen.IsChecked == true && CheckBoxWomen.IsChecked == true))
            {
                MyMessageBox.Show("Выберите один вариант пола (либо мужчина либо женщина)", "Ошибка!"); goto exitMethod;
            }
            if (CheckBoxPastor.IsChecked == true && CheckBoxMinistryHelper.IsChecked == true)
            {
                MyMessageBox.Show("Брат может иметь талько одно назначение!", "Ошибка!"); goto exitMethod;
            }
            if (DayComboBoxBirth.Text == "День" || DayComboBoxBaptism.Text == "День")
            {
                MyMessageBox.Show("Проверьте правильно ли указан день рождения (крещения).", "Ошибка!"); goto exitMethod;
            }
            if (MonthComboBoxBirth.Text == "Месяц" || MonthComboBoxBaptism.Text == "Месяц")
            {
                MyMessageBox.Show("Проверьте правильно ли указан месяц рождения (крещения).", "Ошибка!"); goto exitMethod;
            }
            if (YearComboBoxBirth.Text == "Год" || YearComboBoxBaptism.Text == "Год")
            {
                MyMessageBox.Show("Проверьте правильно ли указан год рождения (крещения).", "Ошибка!"); goto exitMethod;
            }
            {
                if (Int32.TryParse(YearComboBoxBirth.Text, out int yearBirth) == false)
                {
                    MyMessageBox.Show("Укажите правильный год рождения!", "Ошибка");
                    goto exitMethod;
                }
                if (Int32.TryParse(YearComboBoxBaptism.Text, out int yearBaptism) == false)
                {
                    MyMessageBox.Show("Укажите правильный год крещения!", "Ошибка");
                    goto exitMethod;
                }
                if (yearBaptism < yearBirth) // Если год крещения больше года рождения - ошибка
                {
                    MyMessageBox.Show("Год рождения не может быть меньше, чем год крещения!", "Ошибка");
                    goto exitMethod;
                }
            }


            string          birthPublisher   = DayComboBoxBirth.Text + "." + Months[MonthComboBoxBirth.Text] + "." + YearComboBoxBirth.Text;
            string          baptismPublisher = DayComboBoxBaptism.Text + "." + Months[MonthComboBoxBaptism.Text] + "." + YearComboBoxBaptism.Text;
            PublishersRange publisher        = new PublishersRange()
            {
                Name        = TextboxSurname.Text + " " + TextboxName.Text,
                Adress      = TextboxAddress.Text,
                DateBirth   = birthPublisher,
                BuptismDate = baptismPublisher,
                Mobile1     = TextBoxMobile1.Text,
                Mobile2     = TextBoxMobile2.Text,
                Gender      = CheckBoxMen.IsChecked == true ? "М" : "Ж",
                Appointment = CheckBoxPastor.IsChecked == true ? "СТАР" : (CheckBoxMinistryHelper.IsChecked == true ? "СЛУЖ" : ""),
                Pioner      = CheckBoxPioner.IsChecked == true ? "П" : String.Empty
            };

            ProgressWindow waitWindow = new ProgressWindow();

            waitWindow.ProgressBar.IsIndeterminate = true;
            waitWindow.ProgressBar.Orientation     = System.Windows.Controls.Orientation.Horizontal;
            waitWindow.LabelInformation.Content    = String.Empty;
            waitWindow.WindowStartupLocation       = WindowStartupLocation.CenterOwner;
            waitWindow.Owner = this;
            waitWindow.Show();

            await Task.Run(() =>
            {
                MainWindow mainWindow = null;
                this.Dispatcher.Invoke(() => mainWindow = this.Owner as MainWindow);
                JwBookExcel excel = new JwBookExcel(mainWindow.userSettings.JWBookSettings.JWBookPuth);
                JwBookExcel.DataPublisher dpExcel = new JwBookExcel.DataPublisher(excel);
                if (dpExcel.IsPublisherContainsInTable(publisher.Name) == true)
                {
                    this.Dispatcher.Invoke(() =>
                    {
                        waitWindow.Close();
                        MyMessageBox.Show("Такой возвещатель уже есть в системе!", "Ошибка!");
                    });
                }
                else
                {
                    try
                    {
                        this.Dispatcher.Invoke(() =>
                        {
                            dpExcel.AddPublisher(publisher.Name, pioner: CheckBoxPioner.IsChecked.Value, pastor: CheckBoxPastor.IsChecked.Value, ministryAssistant: CheckBoxMinistryHelper.IsChecked.Value);
                            ExcelDBController.AddPublisher(publisher, mainWindow.userSettings.S21Settings);
                            waitWindow.Close();
                            MyMessageBox.Show($"Возвещатель \"{publisher.Name}\" успешно сохранён!", "Успешно!");
                            MainWindow window = this.Owner as MainWindow;
                            window.AddNotification(MainWindow.CreateNotification("Информация о возвещателях", $"Возвещатель \"{publisher.Name}\" успешно сохранён в Google таблицы и Excel файл."));
                        });
                    }
                    catch (InvalidOperationException)
                    {
                        waitWindow.Close();
                        MyMessageBox.Show($"Не удалось добавить возвещателя \"{publisher.Name}\". Проверьте настройки приложения. Возможно Вы не правильно настроили доступ к файлу excel. Или возможно у Вас открыт документ excel. Пожалуйста закройте его и повторите попытку.", "Ошибка!");
                        MainWindow window = this.Owner as MainWindow;
                        window.AddNotification(MainWindow.CreateNotification("Информация о возвещателях", $"Не удалось добавить возвещателя \"{publisher.Name}\". Проверьте настройки приложения. Возможно Вы не правильно настроили доступ к файлу excel. Или возможно у Вас открыт документ excel. Пожалуйста закройте его и повторите попытку."));
                    }
                }
            });

            this.Close();
            exitMethod :;
        }