public ActionResult AddPart(int id, WorkPart newPart) { if (ModelState.IsValid) { try { if (Work.Find(id).AddPart(newPart)) { return RedirectToAction("Details", new { id = id }); } ModelState.AddModelError("", "Não é possível adicionar essa peça à obra. Será que já existe?"); } catch (ModelException) { ModelState.AddModelError("", "Não é possível adicionar essa peça à obra. Será que já existe?"); } } return Details(id); }
public bool AddPart(WorkPart part) { try { using (SqlConnection conn = Db.Utils.NewConnection("READ COMMITTED")) { using (SqlCommand cmd = new SqlCommand("AdicionaPecaObra", conn)) { cmd.CommandType = CommandType.StoredProcedure; SqlParameter retVal = cmd.Parameters.Add("RetVal", SqlDbType.Int); retVal.Direction = ParameterDirection.ReturnValue; cmd.Parameters.AddWithValue("@peca", part.ID).Direction = ParameterDirection.Input; cmd.Parameters.AddWithValue("@oficina", ShopID).Direction = ParameterDirection.Input; cmd.Parameters.AddWithValue("@obra", ID).Direction = ParameterDirection.Input; cmd.Parameters.AddWithValue("@quantidade", part.Quantity).Direction = ParameterDirection.Input; cmd.ExecuteNonQuery(); return (int)retVal.Value == 0; } } } catch (SqlException ex) { throw new ModelException("Erro na base de dados: " + ex.Message, ex.InnerException); } }