예제 #1
0
        /// <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;
            }
        }
예제 #2
0
 /// <summary>
 /// Проверка есть ли в MsSql продукт с заданым кодом
 /// </summary>
 public static bool IsDublicate(long selectProductCodeProduct, SqlConnection connection)
 {
     return(ProductsStorageMssql.IsDublicate(selectProductCodeProduct, connection));
 }
예제 #3
0
 /// <summary>
 /// Добавление продукта в Mssql с возвратом Id
 /// </summary>
 public static long Insert(long codeProduct, string name, string mark, SqlConnection connection)
 {
     return(ProductsStorageMssql.Insert(codeProduct, name, mark, connection));
 }
예제 #4
0
 /// <summary>
 /// Получение коллекции [Изделий] из Mssql
 /// </summary>
 public static List <Product> GetAllMssql()
 {
     return(ProductsStorageMssql.GetAll());
 }