예제 #1
0
        public void CadastrarProduto(Produto produto)
        {
            if (produto == null)
            {
                throw new ArgumentNullException();
            }

            this.repository.Add(produto);
            this.repository.Save();
        }
예제 #2
0
        private void AdicionarProdutoLista(Produto produto)
        {
            ItemPedido itemPedido = this.itensPedidos.FirstOrDefault(item => item.Produto == produto);

            if (itemPedido != null)
            {
                itemPedido.QtdProduto += 1;
            }
            else
            {
                itemPedido = new ItemPedido()
                {
                    Produto = produto,
                    QtdProduto = 1
                };

                this.itensPedidos.Add(itemPedido);
            }

            this.MostrarProdutosLista();
        }
예제 #3
0
        private void btnSalvarProduto_Click(object sender, EventArgs e)
        {
            try
            {
                this.ValidarCamposFormulario();

                Produto produto = new Produto()
                                      {
                                          Nome = this.txtNomeNovoProduto.Text,
                                          Descricao = this.txtDescricaoNovoProduto.Text,
                                          Preco = Convert.ToDecimal(this.txtPrecoNovoProduto.Text),
                                          CategoriaId = (int) cboCategoria.SelectedValue
                                      };

                using (MemoryStream ms = new MemoryStream())
                {
                    Image image = this.picImagemNovoProduto.Image;
                    image.Save(ms, ImageFormat.Png);

                    produto.Imagem = ms.ToArray();
                }

                this.produtoBusiness.CadastrarProduto(produto);

                this.PreencherCamposFormulario();
                this.limparCamposFormularioNovoProduto();

                MessageBox.Show(Mensagens.CadastroProdutoSucesso, Mensagens.Mensagem, MessageBoxButtons.OK,
                                MessageBoxIcon.Information);

                this.LimparCamposFormulario();
                this.PreencherCamposFormulario();
            }
            catch (GenericWarningException ex)
            {
                MessageBox.Show(ex.Message, Mensagens.Mensagem, MessageBoxButtons.OK,
                                MessageBoxIcon.Warning);
            }
            catch (Exception)
            {
                MessageBox.Show(Mensagens.CadastroProdutoFalha, Mensagens.Mensagem, MessageBoxButtons.OK,
                                MessageBoxIcon.Error);
            }
        }
예제 #4
0
        //
        private void PreencherFormularioProduto(Produto produto)
        {
            // 1. Preencher nome do produto
            this.txtNomeProduto.Text = produto.Nome;

            // 2. Preencher categoria do produto
            this.cboCategoria.SelectedValue = produto.CategoriaId;

            // 3. Preencher preço do produto
            this.txtPrecoProduto.Text = Convert.ToString(produto.Preco);

            // 4. Selecionar ingredientes que compoem produto
            for (int i = 0; i != this.chkListaDeIngredientesProduto.Items.Count; ++i) {

                ListItem item = (ListItem)this.chkListaDeIngredientesProduto.Items[i];

                // Se o item representa um ingrediente da lista de ingredientes do Produto,
                // checar o ingrediente na lista de ingredientes da tela
                if (produto.Ingredientes.Where(elemento => elemento.Nome == item.Text).FirstOrDefault() != null) {
                    if (chkListaDeIngredientesProduto.GetItemCheckState(i) == CheckState.Indeterminate ||
                        chkListaDeIngredientesProduto.GetItemCheckState(i) == CheckState.Unchecked) {
                        chkListaDeIngredientesProduto.SetItemCheckState(i, CheckState.Checked);
                    }
                }
                else {
                    if (chkListaDeIngredientesProduto.GetItemCheckState(i) == CheckState.Checked){
                        chkListaDeIngredientesProduto.SetItemCheckState(i, CheckState.Unchecked);
                    }
                }

            }
            #region Testes de algoritimo para 4. Selecionar ingredientes que compoem produto
            /*
            this.chkListaDeIngredientesProduto.Items.Clear();
            foreach (Ingrediente ingrediente in this.ingredienteBusiness.RecuperarIngredientes()) {
                foreach (Ingrediente ingredienteParaSelecionar in produto.Ingredientes) {
                        ListItem listItem = new ListItem()
                        {
                            Text = ingrediente.Nome,
                            Value = ingrediente.Nome,
                        };
                    if (ingredienteParaSelecionar == ingrediente) {
                        listItem.Selected = true;
                    }

                    this.chkListaDeIngredientesProduto.Items.Add(listItem);
                }
            }
            */

            /*
            foreach (ListItem item in this.chkListaDeIngredientesProduto.Items) {
                foreach (Ingrediente ing in produto.Ingredientes) {
                    if (item.Text == ing.Nome) {
                        item.Selected = true;
                    }
                }
            }
            */

            /*
            for (int i = 0; i < this.chkListaDeIngredientesProduto.Items.Count; i++) {
                foreach (Ingrediente ing in produto.Ingredientes) {
                    if (((Ingrediente)this.chkListaDeIngredientesProduto.Items[i]) == ing) {
                        ((ListItem)this.chkListaDeIngredientesProduto.Items[i]).Selected = true;
                    }
                }
            }

            foreach (ListItem item in this.chkListaDeIngredientesProduto.Items) {
                foreach (Ingrediente ing in produto.Ingredientes) {
                    if (item.Value == ing.Nome) {
                        item.Selected = true;
                    }
                }
            }
            */
            #endregion

            // 5. Preencher descrição do produto
            this.txtDescricaoProduto.Text = produto.Descricao;

            // 6. Adicionar imagem do produto
            ImageConverter ic = new ImageConverter();
            this.picImagemProduto.Image = (System.Drawing.Image)ic.ConvertFrom(produto.Imagem);
        }
예제 #5
0
        //
        private Produto criarProdutoDoForm()
        {
            Produto novoProduto = new Produto()
            {
                Nome = this.txtNomeProduto.Text,
                Descricao = this.txtDescricaoProduto.Text,
                Preco = Convert.ToDecimal(this.txtPrecoProduto.Text),
                CategoriaId = (int)cboCategoria.SelectedValue,
            };

            // Construir imagem do produto
            using (MemoryStream ms = new MemoryStream()) {
                System.Drawing.Image image = this.picImagemProduto.Image;
                image.Save(ms, ImageFormat.Png);

                novoProduto.Imagem = ms.ToArray();
            }

            // 3. Recuperar e adicionar os ingredientes selecionados ao produto
            foreach (ListItem itemChecado in chkListaDeIngredientesProduto.CheckedItems) {
                Int32 itemId = Convert.ToInt32(itemChecado.Value);
                Ingrediente ingrediente = ingredienteBusiness.RecuperarIngrediente(itemId);
                novoProduto.Ingredientes.Add(ingrediente);
            }

            return novoProduto;
        }
예제 #6
0
 public ItemPedido(Produto produto)
 {
     this.Produto = produto;
 }
예제 #7
0
        private void btnSalvarCombo_Click(object sender, EventArgs e)
        {
            try
            {
                this.ValidarCamposFormulario();

                Produto combo = new Produto()
                {
                    Nome = this.txtNomeCombo.Text,
                    Descricao = this.txtDescricaoCombo.Text,
                    Preco = Convert.ToDecimal(this.txtPrecoCombo.Text),
                    IsCombo = true
                };

                using (MemoryStream ms = new MemoryStream())
                {
                    Image image = this.picImagemCombo.Image;
                    image.Save(ms, ImageFormat.Png);

                    combo.Imagem = ms.ToArray();
                }

                foreach (string nomeProduto in this.chkListaDeProdutos.Items)
                {
                    Produto produto = this.produtoBusiness.RecuperarProdutos(p => p.Nome == nomeProduto).FirstOrDefault();

                    if (produto != null)
                    {
                        combo.Produtos.Add(produto);
                    }
                }

                this.produtoBusiness.CadastrarProduto(combo);

                MessageBox.Show(Mensagens.CadastroProdutoSucesso, Mensagens.Mensagem, MessageBoxButtons.OK,
                                MessageBoxIcon.Information);

                this.LimparCamposFormulario();
                this.PreencherCamposFormulario();
            }
            catch (GenericWarningException ex)
            {
                MessageBox.Show(ex.Message, Mensagens.Mensagem, MessageBoxButtons.OK,
                                MessageBoxIcon.Warning);
            }
            catch (Exception)
            {
                MessageBox.Show(Mensagens.CadastroProdutoFalha, Mensagens.Mensagem, MessageBoxButtons.OK,
                                MessageBoxIcon.Error);
            }
        }
예제 #8
0
        //
        private void PreencherFormularioProduto(Produto produto)
        {
            // 1. Preencher nome do produto
            this.txtNomeProduto.Text = produto.Nome;

            // 2. Preencher categoria do produto
            this.cboCategoria.SelectedValue = produto.CategoriaId;

            // 3. Preencher preço do produto
            Console.WriteLine("preço" + produto.Preco.ToString());
            this.txtPrecoProduto.Text = Convert.ToString(produto.Preco);

            // 4. Selecionar ingredientes que compoem produto
            /**** TODO: Falta implementar ****/

            // 5. Preencher descrição do produto
            this.txtDescricaoProduto.Text = produto.Descricao;

            // 6. Adicionar imagem do produto
            ImageConverter ic = new ImageConverter();
            this.picImagemProduto.Image = (Image)ic.ConvertFrom(produto.Imagem);
        }
예제 #9
0
        private void btnSalvarModificacaoProduto_Click(object sender, EventArgs e)
        {
            try{
                // 1. Validar campos do formulário
                ValidarCamposFormulario();

                // 2. Remover o produto selecionado
                RemoverProdutoSelecionado();

                // 3. Criar um novo produto a partir dos campos modificados
                Produto novoProduto = new Produto()
                {
                    Nome = this.txtNomeProduto.Text,
                    Descricao = this.txtDescricaoProduto.Text,
                    Preco = Convert.ToDecimal(this.txtPrecoProduto.Text),
                    CategoriaId = (int)cboCategoria.SelectedValue
                };

                using (MemoryStream ms = new MemoryStream()) {
                    Image image = this.picImagemProduto.Image;
                    image.Save(ms, ImageFormat.Png);

                    novoProduto.Imagem = ms.ToArray();
                }

                // 4. Adicionar o novo produto ao banco de dados
                this.produtoBusiness.CadastrarProduto(novoProduto);

                // 5. Desativar os botoes de salvar e cancelar
                DesativarSalvarModificacao();
            }
            catch (GenericWarningException ex){
                MessageBox.Show(ex.Message, Mensagens.Mensagem, MessageBoxButtons.OK,
                                MessageBoxIcon.Warning);
            }
            catch (Exception){
                MessageBox.Show(Mensagens.CadastroProdutoFalha, Mensagens.Mensagem, MessageBoxButtons.OK,
                                MessageBoxIcon.Error);
            }
        }
예제 #10
0
 public ItemPedido(Produto produto)
 {
     this.Produto = produto;
     this.ProdutoId = produto.Id;
 }