Exemplo n.º 1
0
        private void CommonAddData()
        {
            if (ToAddItemName_TextBox.Text == "")
            {
                MyMessageBox.Show("Необходимо заполнить все поля!\nПоле \"Название\" было пустое.", "Недостаточно данных", MessageBoxButton.OK, MessageBoxImage.Warning);
                ToAddItemName_TextBox.Focus();
                return;
            }
            if (ToAddItemMod_ComboBox.SelectedIndex == -1 && ToAddItemMod_ComboBox.Text == "")
            {
                MyMessageBox.Show("Необходимо заполнить все поля!\nПоле \"Мод\" было пустое.", "Недостаточно данных", MessageBoxButton.OK, MessageBoxImage.Warning);
                ToAddItemMod_ComboBox.Focus();
                return;
            }
            if (ToAddItemMod_ComboBox.Text != "" && !ServerViewModel.Mods.Contains(ToAddItemMod_ComboBox.Text))
            {
                var result = MyMessageBox.Show("Вы указали в поле \'Мод\' значение, которого ещё нет в таблице.\nХотите добавить новый тип значений для \'Мод\'", "Изменение данных", MessageBoxButton.YesNo, MessageBoxImage.Information);
                if (result != MessageBoxResult.Yes)
                {
                    return;
                }
            }

            Item newItem = new Item()
            {
                Header = ToAddItemName_TextBox.Text,
                Count  = ToAddItemCount_IntUpDown.Value.Value,
                Price  = ToAddItemPrice_IntUpDown.Value.Value,
                Mod    = ToAddItemMod_ComboBox.Text
            };

            if (ItemViewModel.ItemList.Contains(newItem) == false)
            {
                DataBaseWorker.InsertData(App.Server, newItem);
                MyMessageBox.Show("Добавление новых данных прошло успешно!", "Успех", MessageBoxButton.OK, MessageBoxImage.Information);
                RefillFilterCheckBoxes();
            }
            else
            {
                MyMessageBox.Show("Таблица уже содержит такой объект.", "Ошибка", MessageBoxButton.OK, MessageBoxImage.Error);
            }
            ToAddItemName_TextBox.Text     = ToAddItemMod_ComboBox.Text = "";
            ToAddItemCount_IntUpDown.Value = ToAddItemPrice_IntUpDown.Value = 1;
        }
Exemplo n.º 2
0
        private void FastAddData()
        {
            string data = new TextRange(ToAddData_RichTextBox.Document.ContentStart, ToAddData_RichTextBox.Document.ContentEnd).Text;
            string mod  = ToFastAddItemMod_ComboBox.Text;

            if (data.Length == 0)
            {
                MyMessageBox.Show("Необходимо заполнить все поля!" +
                                  "\nПоле \"Данные\" было пустое.", "Недостаточно данных", MessageBoxButton.OK, MessageBoxImage.Warning);
                ToAddData_RichTextBox.Focus();
                return;
            }
            else if (mod == "")
            {
                MyMessageBox.Show("Необходимо заполнить все поля!" +
                                  "\nПоле \"Мод\" было пустое.", "Недостаточно данных", MessageBoxButton.OK, MessageBoxImage.Warning);
                ToFastAddItemMod_ComboBox.Focus();
                return;
            }
            else if (DataBaseWorker.GetOnlyColumnList(App.Server, "i_mod").Contains(mod) == false)
            {
                var result = MyMessageBox.Show("Вы указали в поле \'Мод\' значение, которого ещё нет в таблице." +
                                               "\nХотите добавить новый тип значений для \'Мод\'", "Изменение данных", MessageBoxButton.YesNo, MessageBoxImage.Information);
                if (result != MessageBoxResult.Yes)
                {
                    return;
                }
            }
            int           success   = 0;
            List <string> errorList = new List <string>();

            foreach (var item in data.Split(new char[] { '\n' }, options: StringSplitOptions.RemoveEmptyEntries).Reverse())
            {
                ToAddData_RichTextBox.ScrollToHome();
                ToAddData_RichTextBox.IsEnabled = false;
                Mouse.OverrideCursor            = Cursors.Wait;
                string clearItem = item.Remove(item.IndexOf('\r'));
                if (clearItem == "")
                {
                    continue;
                }
                if (Regex.IsMatch(clearItem, @"(.+) ([0-9]+) шт. - ([0-9]+)$"))
                {
                    Item newItem = Item.FromString(clearItem, mod);
                    if (ItemViewModel.ItemList.Contains(newItem) == false)
                    {
                        DataBaseWorker.InsertData(App.Server, Item.FromString(clearItem, mod));
                        success++;
                    }
                    ToAddData_RichTextBox.Document.Blocks.Remove(ToAddData_RichTextBox.Document.Blocks.LastBlock);
                    ToAddData_RichTextBox.ScrollToEnd();
                    UpdateDispatcher();
                }
                else
                {
                    errorList.Add(clearItem);
                    Debug.WriteLine(clearItem);
                }
            }
            ToFastAddItemMod_ComboBox.Text  = "";
            ToAddData_RichTextBox.IsEnabled = true;
            Mouse.OverrideCursor            = Cursors.Arrow;
            if (errorList.Count == 0)
            {
                if (success > 0)
                {
                    MyMessageBox.Show($"{success} строк были успешно добавлены!", "Успех", MessageBoxButton.OK, MessageBoxImage.Information);
                }
                else
                {
                    MyMessageBox.Show($"Таблица уже содержит все эти данные", "Успех", MessageBoxButton.OK, MessageBoxImage.Information);
                    ToAddData_RichTextBox.Document.Blocks.Clear();
                    ToFastAddItemMod_ComboBox.Text = "";
                }
                RefillFilterCheckBoxes();
            }
            else
            {
                MyMessageBox.Show($"{errorList.Count} строк не были добавлены. \nПроверьте их валидность, или воспользуйтесь обычным режимом добавления.", "Неверный формат", MessageBoxButton.OK, MessageBoxImage.Warning);
            }
        }