/// <summary> /// Нажатие кнопки [Копировать] /// </summary> private void CopyButton_OnClick(object sender, RoutedEventArgs e) { if (_selectedMaterial == null) { MessageBox.Show($"Вы не выбрали материал для копирования, копирование отменено!", PageLiterals.HeaderInformationOrWarning, MessageBoxButton.OK, MessageBoxImage.Warning); return; } var result = MessageBox.Show($"Вы действительно желаете скопировать материал [{_selectedMaterial.CodeMaterial}] на каждое из указанных изделий?", PageLiterals.HeaderConfirm, MessageBoxButton.YesNo, MessageBoxImage.Question); if (result == MessageBoxResult.No) { return; } if (_selectedProductList.Count > 0) { //Сохраняем значение ProgressBar double value = 0; //Создаем новый экземпляр делегата для ProgressBar // который показывает на метод ProgressBar.SetValue var updatePbDelegate = new UpdateProgressBarDelegate(ProgressBar.SetValue); ProgressBarLabel.Content = "Копирование:"; ProgressBarGrid.Visibility = Visibility.Visible; ProgressBar.Maximum = _selectedProductList.Count; ProgressBar.Value = value; try { var productsId = ProductsStorageMssql.GetProductsIdWhereMaterial(_selectedMaterial); foreach (var selectedProduct in _selectedProductList) { var isHave = false; foreach (var productId in productsId) { if (selectedProduct.Id == productId) { isHave = true; break; } } if (!isHave) { Nu65Service.Insert(selectedProduct.Id, selectedProduct.DisplayCodeString, _selectedMaterial.ServiceMappedMeasureId, _selectedMaterial.Measure.DisplayOldDbCodeString, _selectedMaterial.Id, _selectedMaterial.DisplayCodeString, _selectedMaterial.AuxiliaryMaterialConsumptionRate, _selectedMaterial.WorkGuildId, _selectedMaterial.SignMaterial, _selectedMaterial.ParcelId, _selectedMaterial.UnitValidation, DateTime.Today, _selectedMaterial.FlowRate); } value += 1; Dispatcher?.Invoke(updatePbDelegate, DispatcherPriority.Background, ProgressBar.ValueProperty, value); } ProgressBarGrid.Visibility = Visibility.Collapsed; MessageBox.Show($"Копирование успешно произведено!", PageLiterals.HeaderInformationOrWarning, MessageBoxButton.OK, MessageBoxImage.Information); _selectedProductList = new List <Product>(); ProductListDataGrid.ItemsSource = _selectedProductList; ProductListDataGrid.Items.Refresh(); ShowCountItemsPageDataGrid(); } catch (DbException ex) // DbException - суперкласс для SqlException и OleDbException { throw DbControl.HandleKnownDbFoxProAndMssqlServerExceptions(ex); } } else { MessageBox.Show($"Вы не выбрали куда копировать, копирование отменено!", PageLiterals.HeaderInformationOrWarning, MessageBoxButton.OK, MessageBoxImage.Warning); return; } }
/// <summary> /// Проверка есть ли в MsSql продукт с заданым кодом /// </summary> public static bool IsDublicate(long selectProductCodeProduct, SqlConnection connection) { return(ProductsStorageMssql.IsDublicate(selectProductCodeProduct, connection)); }
/// <summary> /// Добавление продукта в Mssql с возвратом Id /// </summary> public static long Insert(long codeProduct, string name, string mark, SqlConnection connection) { return(ProductsStorageMssql.Insert(codeProduct, name, mark, connection)); }
/// <summary> /// Получение коллекции [Изделий] из Mssql /// </summary> public static List <Product> GetAllMssql() { return(ProductsStorageMssql.GetAll()); }