/// <summary> /// Валидация, сохранение и выход к списку сущностей /// </summary> private void SaveAndExit() { // Получение значений и подписей полей var name = NameTextBox.Text.Trim(); var shortName = ShortNameTextBox.Text.Trim(); var fieldShortName = ShortNameLabel.Content.ToString(); var fieldName = NameLabel.Content.ToString(); var idMeasure = IdTextBox.Value; // Валидация полей var isValidFields = IsValidFieldsWithShowMessageOtherwise(); if (!isValidFields) { return; } // Если краткое название ед. изм. содержит некиррилические символы - получение подтверждение пользователя if (!Validator.IsCyrillicWithUserConfirmOtherwise(shortName, fieldShortName)) { return; } // Если название ед. изм. содержит некиррилические символы - получение подтверждение пользователя if (!Validator.IsCyrillicWithUserConfirmOtherwise(name, fieldName)) { return; } // Проверка на дубликат foreach (var measure in _measuresList) { if (measure.OldDbCode == idMeasure) { const string message = "Такой код уже имеется!"; const string header = "Ошибка валидации"; MessageBox.Show(message, header, MessageBoxButton.OK, MessageBoxImage.Error); return; } } try { // Такое не произайдет из за валидации, но анализатор Resharper ругается if (idMeasure == null) { return; } MeasuresService.Insert((long)idMeasure, shortName, name); } catch (StorageException ex) { Common.ShowDetailExceptionMessage(ex); } PageSwitcher.Switch(new MeasuresTable()); }
/// <summary> /// Загрузка списка объектов из базы данных, их отображение в таблице, указание их кол-ва в Label /// </summary> /// <inheritdoc /> public void AdditionalInitializeComponent() { FilterBarCoverLabel.Content = PageLiterals.FilterBarCoverLabel; // Сообщение-заглушка панели фильтрации try { _measures = MeasuresService.GetAll(); if (_measures != null && _measures.Count > 0) { // Критерии сортировки указаны в реализации интерфейса IComparable класса _measures.Sort(); } PageDataGrid.ItemsSource = _measures; ShowCountItemsPageDataGrid(); } catch (StorageException ex) { Common.ShowDetailExceptionMessage(ex); } }
/// <summary> /// Инициализация данными полей формы, загрузка соответсвующих списков из БД в локальные хранилища, /// заполнение локальных списков и таблиц ящиков/драг.металлов (в случае редактирования) /// </summary> public void AdditionalInitializeComponent() { // Установка даты по умолчанию DatePicker.SelectedDate = DateTime.Today; //Получение списков кодов материала и ед. измерения MeasureComboBox.ItemsSource = null; MaterialComboBox.ItemsSource = null; try { _searchMaterials = MaterialsService.GetAllMssql(); _measures = MeasuresService.GetAll(); } catch (StorageException ex) { Common.ShowDetailExceptionMessage(ex); } if ((_searchMaterials != null && _searchMaterials.Count > 0) && (_measures != null && _measures.Count > 0)) { _searchMaterials.Sort(); _measures.Sort(); } MaterialComboBox.ItemsSource = _searchMaterials; MeasureComboBox.ItemsSource = _measures; if (_editedProduct != null) { ProductIdTextBox.Text = _editedProduct.DisplayCodeString; ProductNameTextBox.Text = _editedProduct.Name; ProductNameTextBox.ToolTip = _editedProduct.Name; ProductMarkTextBox.Text = _editedProduct.Mark; ProductMarkTextBox.ToolTip = _editedProduct.Mark; } if (_editedMaterial == null) { // Режим добавления EditingTypeLabel.Content = PageLiterals.EditPageTypeAdd; AddMaterialButton.Visibility = Visibility.Visible; } else { // Режим редактирования EditingTypeLabel.Content = PageLiterals.EditPageTypeEdit; AddMaterialButton.Visibility = Visibility.Hidden; var searchMaterial = new Material() { Id = _editedMaterial.Id, CodeMaterial = _editedMaterial.CodeMaterial, Name = _editedMaterial.Name, Profile = _editedMaterial.Profile, Gost = _editedMaterial.Gost, }; if (_measures != null) { foreach (var measure in _measures) { if (measure.Id == _editedMaterial.ServiceMappedMeasureId) { _editedMaterial.Measure = measure; break; } } } MaterialComboBox.SelectedItem = searchMaterial; MaterialNameTextBox.Text = _editedMaterial.Name; MaterialGostTextBox.Text = _editedMaterial.Gost; MaterialProfileTextBox.Text = _editedMaterial.Profile; MaterialProfileTextBox.ToolTip = _editedMaterial.Profile; FlowRateTextBox.Text = _editedMaterial.FlowRate; MeasureComboBox.SelectedItem = _editedMaterial.Measure; MeasureShortNameTextBox.Text = _editedMaterial.Measure.ShortName; WorkGuildIdLongUpDown.Text = _editedMaterial.WorkGuildId; ParcelIdLongUpDown.Text = _editedMaterial.ParcelId; SignMaterialLongUpDown.Text = _editedMaterial.SignMaterial; NormUnitLongUpDown.Text = _editedMaterial.UnitValidation; AuxiliaryMaterialConsumptionRateTextBox.Text = _editedMaterial.AuxiliaryMaterialConsumptionRate; DatePicker.SelectedDate = _editedMaterial.Date; MaterialComboBox.IsEnabled = false; } // WorkGuildIdTextBox.Focus(); // Фокус на поле установки значения Код цеха }