Beispiel #1
0
        //создание товаров
        static Assortment SetAssortmentTestData(Category categories)
        {
            Assortment assortment = new Assortment(categories);
            // Категория №1: Экран
            Product screen1 = new Product("Экраны", "Очень хороший",
                "Супер характеристики","Экран Самсунг", 150);
            Product screen2 = new Product("Экраны", "нормальный",
                "неплохие характеристики", "Экран Филипс", 50);
            Product screen3 = new Product("Экраны", "плохой",
                "плохие характеристики", "Экран Хуавэй", 10);
            // Категория №2: Мышки
            Product mouse1 = new Product("Мышки", "Очень хорошая",
                "Супер характеристики", "Мышка Logitech", 150);
            Product mouse2 = new Product("Мышки", "нормальная",
                "неплохие характеристики", "Мышка Apple", 50);
            Product mouse3 = new Product("Мышки", "плохая",
                "плохие характеристики", "Мышка Corsair", 10);
            //добавление товаров в ассортмент магазина

            assortment.AddProduct(screen1);
            assortment.AddProduct(screen2);
            assortment.AddProduct(screen3);
            assortment.AddProduct(mouse1);
            assortment.AddProduct(mouse2);
            assortment.AddProduct(mouse3);
            return assortment;
        }
 /// <summary>
 /// Конструктор формы с параметрами
 /// </summary>
 /// <param name="categories">объект класса "товарные категории"</param>
 /// <param name="assortment">объект класса "ассортимент товаров"</param>
 /// <param name="product">продукт, информацию о котором необходимо
 /// откорректировать</param>
 public FormCreateAndEdit(Category categories, Assortment assortment,
      Product product)
     : this(categories, assortment)
 {
     this.selectedProduct = product;
     this.SetComboBoxCategoryStartIteam();
     this.TextBoxNameInitialization();
     this.TextBoxCharacteristicsInitialization();
     this.TextBoxDescriptionInitialization();
     this.TextBoxPriceInitialization();
 }
Beispiel #3
0
        /// <summary>
        /// Обработка нажатия кнопки "Создать". Добавляет информацию о 
        /// новом товаре в ассортимент товаров.
        /// </summary>
        private void ButtonCreate(Object sender, EventArgs e)
        {
            this.formCreateAndEdit = new FormCreateAndEdit(this.categories, this.assortment);
            this.formCreateAndEdit.Owner = this;
            this.formCreateAndEdit.StartPosition = FormStartPosition.CenterParent;
            this.formCreateAndEdit.ShowDialog(this);

            if (this.formCreateAndEdit.DialogResult == DialogResult.OK)
            {
                this.selectedProduct = this.formCreateAndEdit.SelectedProduct;
                this.assortment = this.formCreateAndEdit.Assortment;
                this.categories = this.formCreateAndEdit.Categoties;

                this.comboBoxProducts.Items.Clear();
                this.ComboBoxProductsInitialization();
                this.comboBoxProducts.SelectedItem = this.selectedProduct.Name;
                this.textBoxPrice.Text = this.selectedProduct.Price.ToString();
            }
            if (this.formCreateAndEdit != null)
            {
                this.formCreateAndEdit.Close();
                this.formCreateAndEdit.Dispose();
                this.formCreateAndEdit = null;
            }
        }
Beispiel #4
0
 /// <summary>
 /// Обрабатывает событие выбора одного из пунков выподающего меню 
 /// ComboBoxProducts. Присваивет полю  this.selectedProduct 
 /// выбранный пользователем объект класса Product.
 /// </summary>
 private void ComboBoxProductsSelectesIndexChanged(object sender, 
     EventArgs e)
 {
     String productName = (sender as ComboBox).SelectedItem.ToString();
     this.selectedProduct = this.assortment.GetProduct(productName);
     this.textBoxPrice.Text = this.selectedProduct.Price.ToString();
 }
Beispiel #5
0
        /// <summary>
        /// Обработка нажатия кнопки "Редактировать". Создает окно
        /// предоставляющее возможность редактировать информацию о выбранном
        /// товаре.
        /// </summary>
        private void ButtonEditClick(Object sender, EventArgs e)
        {
            if(this.selectedProduct == null )
            {
                MessageBox.Show(
                    text: "Операция редактирования " +
                    "не может быть выполнена. Не выбрано имя товара, " +
                    "информацию о котором необходимо отредактировать. " +
                    "Выберите имя товара и повторите попытку.",
                    caption: "Уведомление",
                    buttons: MessageBoxButtons.OK,
                    icon: MessageBoxIcon.Exclamation);
            }
            else
            {
                this.FormCreateAndEditInitialization();
                if (this.formCreateAndEdit.DialogResult == DialogResult.OK)
                {
                    this.selectedProduct = this.formCreateAndEdit.SelectedProduct;
                    this.assortment = this.formCreateAndEdit.Assortment;
                    this.categories = this.formCreateAndEdit.Categoties;

                    this.comboBoxProducts.Items.Clear();
                    this.ComboBoxProductsInitialization();
                    this.comboBoxProducts.SelectedItem = this.selectedProduct.Name;
                    this.textBoxPrice.Text = this.selectedProduct.Price.ToString();
                    this.textBoxTotalPrice.Text = "0.00";
                    totalOrderPrice = 0.00;
                    this.listBoxOrderInfo.Items.Clear();
                }
                if (this.formCreateAndEdit != null)
                {
                    this.formCreateAndEdit.Close();
                    this.formCreateAndEdit.Dispose();
                    this.formCreateAndEdit = null;
                }
            }
        }
 /// <summary>
 /// Проверка, правильности формата введенного значения цены.
 /// </summary>
 /// <param name="value">строка, содержащая цену продукта</param>
 /// <returns>true - если цена имеет верный формат</returns>
 private bool ValidatePriceValue(string value)
 {
     double price;
     if (Double.TryParse(value, out price) && price >= 0)
     {
         return true;
     }
     else
     {
         this.selectedProduct = null;
         MessageBox.Show("Ошбика сохранения данных. Значение цены имеет " +
             "неверный формат. Исправьте значение цены и попробуйте " +
             "еще раз.");
         return false;
     }
 }
 /// <summary>
 /// Проверяет, было ли выбранно одно из названий товарных категорий,
 /// к которым относится новый продукт.
 /// Проверка осущесталяется по значению индекса, выбранного 
 /// пользователем значения в контроллере "comboBoxCategory"
 /// </summary>
 /// <param name="id">индекс</param>
 /// <returns>true - если было выбранно одно из значений контроллера
 /// "comboBoxCategory"</returns>
 private bool ValidateCategory(int id)
 {
     if (id == -1)
     {
         this.selectedProduct = null;
         MessageBox.Show("Не выбранно название товарной категории." +
             "Данное поле является обязательным");
         return false;
     }
     else
     {
         return true;
     }
 }
 //ОБРАБОТЧИКИ СОБЫТИЙ
 //+-------------------------------------------------------------------+
 /// <summary>
 /// Обработка события нажатия кнопки "Сохранить".
 /// Вносит изменения в существующее описание товара, после чего
 /// закрывает окно редактирования.
 /// </summary>
 private void ButtonSaveClick(Object sender, EventArgs e)
 {
     Product newProductInfo = new Product();
     int id = this.comboBoxCategory.SelectedIndex;
     if (!this.ValidateCategory(id)) return;
     newProductInfo.Category = this.comboBoxCategory.SelectedItem.ToString();
     newProductInfo.Name = this.textBoxName.Text;
     newProductInfo.Characteristics = this.textBoxCharacteristics.Text;
     newProductInfo.Description = this.textBoxDescription.Text;
     if (!this.ValidatePriceValue(this.textBoxPrice.Text)) return;
     if (this.selectedProduct != null)
     {
         this.assortment.ReplaceProduct(this.selectedProduct, newProductInfo);
     }
     else
     {
         this.assortment.AddProduct(newProductInfo);
     }
     this.selectedProduct = newProductInfo;
     this.DialogResult = DialogResult.OK;
     this.Close();
 }