Ejemplo n.º 1
0
        public IActionResult Editar(RolViewModel rolVM)
        {
            if (ModelState.IsValid)
            {
                try
                {
                    RolesRepository rolesRepository = new RolesRepository();
                    var             rolResult       = rolesRepository.GetRolByNombre(rolVM.Nombre.ToLower());

                    //Regex regex = new Regex(@"^[a-zA-ZñÑáéíóúÁÉÍÓÚ\s 0-9 ]+$");
                    Regex regex     = new Regex(@"^[a-zA-ZñÑáéíóúÁÉÍÓÚ\s  ]+$");
                    bool  resultado = true;
                    resultado = regex.IsMatch(rolVM.Nombre);

                    if (!resultado)
                    {
                        ModelState.AddModelError("", "No se aceptan números y caracteres especiales en el rol (Solo: a-z, A-Z).");
                        return(View(rolVM));
                    }

                    Regex  regexNoNumStart     = new Regex(@"[0-9]| $");
                    bool   resultadoNoNumStart = false;
                    string textoFirstChart     = rolVM.Nombre.Substring(0, 1);
                    resultadoNoNumStart = regexNoNumStart.IsMatch(textoFirstChart);
                    if (resultadoNoNumStart)
                    {
                        ModelState.AddModelError("", "No se permite iniciar con NÚMERO o con ESPACIO.");
                        return(View(rolVM));
                    }

                    if (rolResult == null)
                    {
                        rolesRepository.UpdateRolVM(rolVM);

                        return(RedirectToAction("Rol", "Administrador"));
                    }
                    else if (rolResult.IdRol == rolVM.IdRol)
                    {
                        rolResult.Nombre = rolVM.Nombre;
                        rolesRepository.Update(rolResult);

                        return(RedirectToAction("Rol", "Administrador"));
                    }
                    else
                    {
                        ModelState.AddModelError("", "Ya existe este rol.");
                        return(View(rolVM));
                    }
                }
                catch (Exception ex)
                {
                    ModelState.AddModelError("", ex.Message);
                    return(View(rolVM));
                }
            }
            else
            {
                return(View(rolVM));
            }
        }