public FrmEditarIngredienteReceta(int id, int idReceta)
        {
            InitializeComponent();
            this.idReceta = idReceta;
            medidaBindingSource.DataSource             = DatosMedida.getMedidas();
            materiaPrimaRecetaBindingSource.DataSource = DatosMateriaPrimaReceta.getMateriaPrimaRecetas();

            if (id == 0)
            {
                ingredienteRecetaBindingSource.Add(new IngredienteReceta());
            }
            else
            {
                ingredienteRecetaBindingSource.Add(DatosIngredienteReceta.getIngredienteReceta(id));

                cbMedida1.SelectedItem  = ((IngredienteReceta)ingredienteRecetaBindingSource.Current).Medida;
                cbMedida1.SelectedValue = ((IngredienteReceta)ingredienteRecetaBindingSource.Current).Medida.Id;

                cbMateriaPrimaReceta.SelectedItem  = ((IngredienteReceta)ingredienteRecetaBindingSource.Current).Nombre;
                cbMateriaPrimaReceta.SelectedValue = ((IngredienteReceta)ingredienteRecetaBindingSource.Current).Nombre.Id;

                IngredienteReceta ir = (IngredienteReceta)ingredienteRecetaBindingSource.Current;

                if (ir.Nombre.Nombre != "")
                {
                    this.Text = "Editar " + ir.Nombre.Nombre;
                }
            }
        }
        private void btnAceptar_Click(object sender, EventArgs e)
        {
            try
            {
                if (!validaciones())
                {
                    return;
                }

                IngredienteReceta ir = (IngredienteReceta)ingredienteRecetaBindingSource.Current;
                ir.Medida = (Medida)cbMedida1.SelectedItem;
                ir.Nombre = (MateriaPrimaReceta)cbMateriaPrimaReceta.SelectedItem;

                Receta r = new Receta();
                r.Id      = idReceta;
                ir.Receta = r;

                if (ir.Id == 0)
                {
                    DatosIngredienteReceta.Crear(ir);
                }
                else
                {
                    DatosIngredienteReceta.Modificar(ir);
                }
                Close();
            }
            catch
            {
                MessageBox.Show("Complete todos los campos");
            }
        }
        public static IngredienteReceta getIngredienteReceta(int id)
        {
            IngredienteReceta ir  = new IngredienteReceta();
            SqlConnection     cnn = new SqlConnection(conexion);

            //abro la conexion
            cnn.Open();

            //Creo el comando sql a utlizar
            SqlCommand cmd = new SqlCommand("select id, idMateriaPrimaReceta, cantidad, descripcion, idMedida, idReceta from IngredientesRecetas where id = @id");

            //asigno la conexion al comando
            cmd.Parameters.Add(new SqlParameter("@id", id));

            cmd.Connection = cnn;
            //creo el datareader
            SqlDataReader obdr = cmd.ExecuteReader();

            //recorro el datareader
            while (obdr.Read())
            {
                ir.Id          = obdr.GetInt32(0);
                ir.Nombre      = DatosMateriaPrimaReceta.getMateriaPrimaReceta(obdr.GetInt32(1));
                ir.Cantidad    = obdr.GetDouble(2);
                ir.Descripcion = obdr.GetString(3);
                ir.Medida      = DatosMedida.getMedida(obdr.GetInt32(4));
                ir.Receta      = DatosReceta.getReceta(obdr.GetInt32(5));
            }

            cnn.Close();

            return(ir);
        }
        public async Task <IActionResult> Edit(int id, [Bind("Id,RecetaId,IngredienteId")] IngredienteReceta ingredienteReceta)
        {
            if (id != ingredienteReceta.Id)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    _context.Update(ingredienteReceta);
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!IngredienteRecetaExists(ingredienteReceta.Id))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(nameof(Index)));
            }
            ViewData["IngredienteId"] = new SelectList(_context.Set <Ingrediente>(), "Id", "Id", ingredienteReceta.IngredienteId);
            ViewData["RecetaId"]      = new SelectList(_context.Set <Receta>(), "Id", "Id", ingredienteReceta.RecetaId);
            return(View(ingredienteReceta));
        }
        /// <summary>
        /// Crea una nueva instancia de la clase <see cref="IngredientePresentacion"/>
        /// </summary>
        /// <param name="ingrediente">Ingrediente de una receta del sistema</param>
        public IngredientePresentacion(IngredienteReceta ingrediente)
        {
            this.ingrediente = ingrediente;

            Nombre   = ingrediente.Ingrediente.Nombre;
            Cantidad = ingrediente.Cantidad.ToString();
            Unidad   = ingrediente.Unidad.ToString();
        }
        public async Task <IActionResult> Create([Bind("Id,RecetaId,IngredienteId")] IngredienteReceta ingredienteReceta)
        {
            if (ModelState.IsValid)
            {
                _context.Add(ingredienteReceta);
                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }
            ViewData["IngredienteId"] = new SelectList(_context.Set <Ingrediente>(), "Id", "Id", ingredienteReceta.IngredienteId);
            ViewData["RecetaId"]      = new SelectList(_context.Set <Receta>(), "Id", "Id", ingredienteReceta.RecetaId);
            return(View(ingredienteReceta));
        }
        void SetearIngrediente(IngredienteReceta ingredienteReceta)
        {
            UnidadMedida unidad = (UnidadMedida)Enum.Parse(typeof(UnidadMedida), cboUnidad.SelectedItem.ToString());

            if (ingredienteReceta.Ingrediente == null)
            {
                ingredienteReceta.Ingrediente = new Ingrediente();
            }

            ingredienteReceta.Ingrediente.Nombre = txtIngrediente.Text;
            ingredienteReceta.Cantidad           = decimal.Parse(txtCantidad.Text);
            ingredienteReceta.Unidad             = unidad;
        }
        private void btnEliminar_Click_1(object sender, EventArgs e)
        {
            try
            {
                IngredienteReceta ir = (IngredienteReceta)ingredienteRecetaBindingSource.Current;

                if (MessageBox.Show("¿Esta seguro de borrar a " + ir.Nombre + "?", "Eliminar", MessageBoxButtons.YesNo) == DialogResult.Yes)
                {
                    DatosIngredienteReceta.Eliminar(ir);
                    Actualizar();
                }
            }
            catch
            {
                MessageBox.Show("No seleccionó nada");
            }
        }
        public static void Eliminar(IngredienteReceta ir)
        {
            //creo la conexion
            SqlConnection cnn = new SqlConnection(conexion);

            //abro la conexion
            cnn.Open();

            //Creo el comando sql a utlizar
            SqlCommand cmd = new SqlCommand("delete from IngredientesRecetas Where id = @id");

            //Cargo el valor del parametro
            cmd.Parameters.Add(new SqlParameter("@id", ir.Id));

            //asigno la conexion al comando
            cmd.Connection = cnn;
            cmd.ExecuteNonQuery();
            cnn.Close();
        }
        public static void Crear(IngredienteReceta ir)
        {
            //creo la conexion
            SqlConnection cnn = new SqlConnection(conexion);

            //abro la conexion
            cnn.Open();

            //Creo el comando sql a utlizar
            SqlCommand cmd = new SqlCommand("insert into IngredientesRecetas (idMateriaPrimaReceta, cantidad, descripcion, idMedida, idReceta) values (@idMateriaPrimaReceta, @cantidad, @descripcion, @idMedida, @idReceta)");

            //Cargo el valor del parametro
            cmd.Parameters.Add(new SqlParameter("@idMateriaPrimaReceta", ir.Nombre.Id));
            cmd.Parameters.Add(new SqlParameter("@cantidad", ir.Cantidad));
            cmd.Parameters.Add(new SqlParameter("@descripcion", ir.Descripcion));
            cmd.Parameters.Add(new SqlParameter("@idMedida", ir.Medida.Id));
            cmd.Parameters.Add(new SqlParameter("@idReceta", ir.Receta.Id));
            //asigno la conexion al comando
            cmd.Connection = cnn;
            cmd.ExecuteNonQuery();
            cnn.Close();
        }
        void BtnGuardar_Click(object sender, EventArgs e)
        {
            try
            {
                Receta            receta            = recetasBL.Obtener(Receta.Nombre);
                IngredienteReceta ingredienteReceta = null;

                foreach (IngredienteReceta ingrediente in receta.Ingredientes)
                {
                    if (ingrediente.Ingrediente.Nombre == txtIngrediente.Text)
                    {
                        ingredienteReceta = ingrediente;
                        break;
                    }
                }

                if (ingredienteReceta == null)
                {
                    ingredienteReceta = new IngredienteReceta();

                    SetearIngrediente(ingredienteReceta);
                    receta.Ingredientes.Add(ingredienteReceta);
                }
                else
                {
                    SetearIngrediente(ingredienteReceta);
                }

                recetasBL.Actualizar(receta);
                CargarIngredientes();
                LimpiarFormulario();

                contexto.RegistrarEvento(Resources.IngredientesForm_RecetaActualizada, receta.Nombre);
            }
            catch (Exception ex)
            {
                contexto.RegistrarError(ex);
            }
        }