public FormProductForm(FormProduct formProduct, int Id = 0)
        {
            InitializeComponent();

            this.formProduct = formProduct;

            this.tbId.Enabled = false;

            productComponents = null;

            try
            {
                if (Id > 0)
                {
                    DTO.Product product = ProductCtrl.GetById(Id);

                    this.tbId.Text     = Id.ToString();
                    tbName.Text        = product.Name;
                    tbDescription.Text = product.Description;
                    tbAmount.Text      = product.Amount.ToString();
                    tbPrice.Text       = product.Price.ToString("0.00");
                    this.tbId.ReadOnly = true;

                    productComponents = (from component in product.Components select component.Id).ToList();
                }

                componentsList = ComponentCtrl.GetAll();
                foreach (var component in componentsList)
                {
                    clbComponents.Items.Add(component.Name, productComponents != null && productComponents.Contains(component.Id));
                }

                this.tbName.Select();
            }
            catch (AggregateException ex)
            {
                MessageBox.Show("Aplicação servidora não responde: " + ex.Message);
            }
            catch (Exception ex)
            {
                MessageBox.Show("Problema na solicitação: " + ex.Message);
            }
        }
Beispiel #2
0
        public FormHistoric()
        {
            InitializeComponent();

            dgvHistoric.AutoGenerateColumns = false;

            try
            {
                dgvHistoric.DataSource = ProductCtrl.GetAll();
            }
            catch (AggregateException ex)
            {
                MessageBox.Show("Aplicação servidora não responde: " + ex.Message);
            }
            catch (Exception ex)
            {
                MessageBox.Show("Problema na solicitação: " + ex.Message);
            }
        }
        private void btnSave_Click(object sender, EventArgs e)
        {
            DTO.Product product = new DTO.Product();
            if (tbId.Text != "")
            {
                product.Id = Convert.ToInt32(tbId.Text);
            }
            else
            {
                string      hostName = Dns.GetHostName();
                IPAddress[] ip       = Dns.GetHostAddresses(hostName);
                product.Ip = ip[1].ToString();
            }

            string validationMessage = "";

            if (tbName.Text.Trim() == "")
            {
                validationMessage += "Nome do produto é obrigatório. ";
            }

            int amount;

            if (!int.TryParse(tbAmount.Text, out amount))
            {
                validationMessage += "Quantidade deve ser inteiro. ";
            }

            double price;

            if (!double.TryParse(tbPrice.Text, out price))
            {
                validationMessage += "Preço inválido!";
            }

            if (validationMessage == "")
            {
                product.Name        = tbName.Text;
                product.Description = tbDescription.Text;
                product.Amount      = amount;
                product.Price       = price;

                if (clbComponents.Items.Count > 0)
                {
                    List <DTO.Component> productComponents = new List <DTO.Component>();

                    int quantityOfComponentsChecked = clbComponents.Items.Count;

                    for (int i = 0; i < quantityOfComponentsChecked; i++)
                    {
                        if (clbComponents.GetItemChecked(i))
                        {
                            productComponents.Add(new DTO.Component()
                            {
                                Id = componentsList[i].Id
                            });
                        }
                    }
                    product.Components = productComponents;
                }

                try
                {
                    string message = ProductCtrl.Save(product);
                    this.formProduct.UpdateDgvProducts();
                    MessageBox.Show(message);
                    this.Close();
                }
                catch (AggregateException ex)
                {
                    MessageBox.Show("Operação não realizada porque a aplicação servidora não responde: " + ex.Message);
                }
                catch (Exception ex)
                {
                    MessageBox.Show("Operação não realizada. Problema na solicitação: " + ex.Message);
                }
            }
            else
            {
                MessageBox.Show(validationMessage);
            }
        }