public IActionResult AgregarCarrera(DACarrerasViewModel carrera) { //ViewBag.Admin = 1; if (ModelState.IsValid) { //try //{ CarrerasRepository RepositorioCarreras = new CarrerasRepository(); var ResultNombre = RepositorioCarreras.GetCarreraByNombre(carrera.Nombre); var ResultClave = RepositorioCarreras.GetCarreraByClave(carrera.Clave); var ResultClaveCarrera = RepositorioCarreras.GetCarreraByClaveNombre(carrera.Clave, carrera.Nombre); Regex regClave = new Regex(@"^[a-zA-Z]+$"); Regex regNombre = new Regex(@"^[a-zA-ZñÑáéíóúÁÉÍÓÚ\s ]{6,}$"); bool resultClave = true; resultClave = regClave.IsMatch(carrera.Clave); bool resultNombre = true; resultNombre = regNombre.IsMatch(carrera.Nombre); if (!resultClave) { ModelState.AddModelError("", "La clave solo acepta 2 letras sin espacios ni caracteres especiales."); return(View(carrera)); } if (!resultNombre) { ModelState.AddModelError("", "El nombre debe contener 6 o más caracteres, no puede contener números y/o caracteres especiales."); return(View(carrera)); } Regex regexNumInicio = new Regex(@"[0-9]| $"); string expresion = carrera.Nombre.Substring(0, 1); bool resultadoRegexNum = regexNumInicio.IsMatch(expresion); if (resultadoRegexNum) { ModelState.AddModelError("", "El nombre de la carrera no puede iniciar con un numero."); return(View(carrera)); } if (ResultClaveCarrera == null) { if (ResultNombre != null) { ModelState.AddModelError("", "Ya existe una carrera con el mismo nombre."); if (RepositorioCarreras.GetCarreraByNombre(carrera.Nombre).Estatus == false) { ViewBag.Recuperacion = true; ViewBag.IdEncRec = RepositorioCarreras.GetCarreraByNombre(carrera.Nombre).Id; } return(View(carrera)); } if (ResultClave != null) { ModelState.AddModelError("", "Ya existe una carrera con la misma clave."); return(View(carrera)); } RepositorioCarreras.Insert(carrera); return(RedirectToAction("Index")); } else { ModelState.AddModelError("", "Ya existe esta carrera."); return(View(carrera)); } //} //catch (Exception ex) //{ // ModelState.AddModelError("", ex.Message); // return View(carrera); //} } else { return(View(carrera)); } }