public IActionResult Agregar(CarreraViewModel carreraVM) { if (ModelState.IsValid) { try { CarrerasRepository carreraRepository = new CarrerasRepository(); var carreraResultNombre = carreraRepository.GetCarreraByNombre(carreraVM.Nombre.ToLower()); var carreraResultClave = carreraRepository.GetCarreraByClave(carreraVM.Clave); var carreraResult = carreraRepository.GetCarreraByClaveNombre(carreraVM.Clave, carreraVM.Nombre.ToLower()); //Regex regex = new Regex(@"^[a-zA-ZñÑáéíóúÁÉÍÓÚ\s 0-9 ]+$"); Regex regexClave = new Regex(@"^[a-zA-Z]+$"); Regex regexNombre = new Regex(@"^[a-zA-ZñÑáéíóúÁÉÍÓÚ\s ]+$"); bool resultadoClave = true; resultadoClave = regexClave.IsMatch(carreraVM.Clave); bool resultadoNombre = true; resultadoNombre = regexNombre.IsMatch(carreraVM.Nombre); if (!resultadoClave) { ModelState.AddModelError("", "La clave de la carrera solo acepta letras. (Máximo 2, verifique espacios)"); return(View(carreraVM)); } if (!resultadoNombre) { ModelState.AddModelError("", "No se aceptan números y caracteres especiales en el nombre (Solo: a-z, A-Z)."); return(View(carreraVM)); } //if (!resultadoClave || !resultadoNombre) //{ // ModelState.AddModelError("", "No se aceptan caracteres especiales (Solo: a-z, A-Z, 0-9)."); // return View(carreraVM); //} Regex regexNoNumStart = new Regex(@"[0-9]| $"); bool resultadoNoNumStart = false; string textoFirstChart = carreraVM.Nombre.Substring(0, 1); resultadoNoNumStart = regexNoNumStart.IsMatch(textoFirstChart); if (resultadoNoNumStart) { ModelState.AddModelError("", "No se permite iniciar con NÚMERO o con ESPACIO."); return(View(carreraVM)); } if (carreraResult == null) { if (carreraResultNombre != null) { ModelState.AddModelError("", "Ya existe una carrera con el mismo nombre "); return(View(carreraVM)); } if (carreraResultClave != null) { ModelState.AddModelError("", "Ya existe una carrera con la misma clave"); return(View(carreraVM)); } carreraRepository.InsertCarreraVM(carreraVM); return(RedirectToAction("Carrera", "Administrador")); } else { ModelState.AddModelError("", "Ya existe esta carrera"); return(View(carreraVM)); } } catch (Exception ex) { ModelState.AddModelError("", ex.Message); return(View(carreraVM)); } } else { return(View(carreraVM)); } }
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)); } }