public IHttpActionResult Agrega_Producto(typeProducto producto) { var Producto = new Cat_Productos(); try { Producto.Codigo = producto.Codigo; Producto.Nombre = producto.Nombre.ToUpper(); Producto.Precio = producto.Precio; //Realiza el registro using (var conexion = new dboEntities()) { conexion.Configuration.ProxyCreationEnabled = false; //Valida que no exista el nombre o código var validaNombre = conexion.Cat_Productos.SingleOrDefault(Consulta => Consulta.Nombre == producto.Nombre.ToUpper() || Consulta.Codigo == producto.Codigo); if (validaNombre == null) { conexion.Cat_Productos.Add(Producto); conexion.SaveChanges(); return(Ok()); } else { throw new Exception("Ya existe un registro con este nombre o código, favor de verificarlo."); } } } catch (DbEntityValidationException ex) { // Retrieve the error messages as a list of strings. var errorMessages = ex.EntityValidationErrors .SelectMany(x => x.ValidationErrors) .Select(x => x.ErrorMessage); // Join the list to a single string. var fullErrorMessage = string.Join("; ", errorMessages); // Combine the original exception message with the new one. var exceptionMessage = string.Concat(ex.Message, " Errores de validación: ", fullErrorMessage); return(ResponseMessage(Request.CreateErrorResponse(HttpStatusCode.InternalServerError, exceptionMessage))); } catch (DbUpdateException ex) { return(ResponseMessage(Request.CreateErrorResponse(HttpStatusCode.InternalServerError, ex.Message))); } catch (Exception ex) { return(ResponseMessage(Request.CreateErrorResponse(HttpStatusCode.InternalServerError, ex.Message))); } }
public ActionResult AgregarProducto(ProductoViewModel model) { if (ModelState.IsValid) { try { model.ProductoID = model.ProductoID.ToUpper(); if (_unitOfWork.GetRepositoryInstance <Cat_Productos>().GetExists(s => s.Clave_Empresa == model.EmpresaID && s.Clave_Producto.Trim() == model.ProductoID.Trim())) { ViewBag.ErrorMessage = "La clave de producto ya existe para la empresa seleccionada"; return(View(model)); } Cat_Productos _prod = new Cat_Productos(); _prod.Clave_Empresa = Convert.ToByte(model.EmpresaID); _prod.Clave_Familia = Convert.ToByte(model.FamiliaID); _prod.Clave_Grupo = model.GrupoID; _prod.Clave_Producto = model.ProductoID; _prod.Desc_Producto = model.Nombre; _prod.Tipo_Presentacion = model.Presentacion; _prod.Clave_Linea = Convert.ToByte(0); _unitOfWork.GetRepositoryInstance <Cat_Productos>().Add(_prod); return(RedirectToAction("Productos", "Catalogos")); } //catch (System.Data.Entity.Validation.DbEntityValidationException exv) //{ // // Retrieve the error messages as a list of strings. // var errorMessages = exv.EntityValidationErrors // .SelectMany(x => x.ValidationErrors) // .Select(x => x.ErrorMessage); // // Join the list to a single string. // var fullErrorMessage = string.Join("; ", errorMessages); // // Combine the original exception message with the new one. // var exceptionMessage = string.Concat(exv.Message, " Los Errores son: ", fullErrorMessage); // // Throw a new DbEntityValidationException with the improved exception message. // //throw new DbEntityValidationException(exceptionMessage, exv.EntityValidationErrors); // ViewBag.ErrorMessage = exceptionMessage; //} catch (Exception ex) { ViewBag.ErrorMessage = ex.Message; } } else { ViewBag.ErrorMessage = "La información es incompleta"; } return(View(model)); }
public ActionResult EditarProducto(ProductoViewModel model) { if (ModelState.IsValid) { try { Cat_Productos _prod = _unitOfWork.GetRepositoryInstance <Cat_Productos>() .GetFirstOrDefaultByParameter(s => s.Clave_Empresa == model.EmpresaID && s.Clave_Producto.Trim().ToUpper() == model.ProductoID.Trim()); if (_prod == null) { ViewBag.ErrorMessage = "Error al intentar actualizar los datos del producto"; return(View(model)); } _prod.Desc_Producto = model.Nombre; _prod.Tipo_Presentacion = model.Presentacion; _unitOfWork.GetRepositoryInstance <Cat_Productos>().Update(_prod); _unitOfWork.SaveChanges(); return(RedirectToAction("Productos", "Catalogos")); } //catch (System.Data.Entity.Validation.DbEntityValidationException exv) //{ // // Retrieve the error messages as a list of strings. // var errorMessages = exv.EntityValidationErrors // .SelectMany(x => x.ValidationErrors) // .Select(x => x.ErrorMessage); // // Join the list to a single string. // var fullErrorMessage = string.Join("; ", errorMessages); // // Combine the original exception message with the new one. // var exceptionMessage = string.Concat(exv.Message, " Los Errores son: ", fullErrorMessage); // // Throw a new DbEntityValidationException with the improved exception message. // //throw new DbEntityValidationException(exceptionMessage, exv.EntityValidationErrors); // ViewBag.ErrorMessage = exceptionMessage; //} catch (Exception ex) { ViewBag.ErrorMessage = ex.Message; } } else { ViewBag.ErrorMessage = "La información es incompleta"; } return(View(model)); }
public ActionResult EditarProducto(string Id) { string[] empresaProducto = Id.Trim().Split('|'); short empresaID = Convert.ToInt16(empresaProducto[0]); string productoID = empresaProducto[1]; Cat_Productos _prod = _unitOfWork.GetRepositoryInstance <Cat_Productos>() .GetFirstOrDefaultByParameter(s => s.Clave_Empresa == empresaID && s.Clave_Producto.ToUpper().Trim() == productoID.Trim()); if (_prod == null) { return(RedirectToAction("Productos", "Catalogos")); } var model = new ProductoViewModel(); model.EmpresaID = _prod.Clave_Empresa; model.FamiliaID = _prod.Clave_Familia; model.GrupoID = _prod.Clave_Grupo; model.Nombre = _prod.Desc_Producto; model.Presentacion = _prod.Tipo_Presentacion; model.ProductoID = _prod.Clave_Producto; return(View(model)); }