示例#1
0
        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));
            }
        }
示例#2
0
        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));
            }
        }