public IActionResult AgregarCategoria(DACategoriasViewModel categoria) { //ViewBag.Admin = 1; if (ModelState.IsValid) { //try //{ CategoriasRepository RepositorioCategorias = new CategoriasRepository(); var ResultNombre = RepositorioCategorias.GetCategoriaByNombre(categoria.Nombre); Regex regexNombre = new Regex(@"^[a-zA-ZáéíóúÁÉÍÓÚñÑ0-9 ]{6,}$"); bool resultNombreCat = regexNombre.IsMatch(categoria.Nombre); if (!resultNombreCat) { ModelState.AddModelError("", "El nombre debe contener 6 o más caracteres, no puede iniciar con un número y no puede contener caracteres especiales."); return(View(categoria)); } Regex regexIniciaNum = new Regex(@"[0-9]| $"); string expresion = categoria.Nombre.Substring(0, 1); bool resultRegexIniciaNum = regexIniciaNum.IsMatch(expresion); if (resultRegexIniciaNum) { ModelState.AddModelError("", "El nombre de la categoria no puede iniciar con un numero."); return(View(categoria)); } if (ResultNombre == null) { RepositorioCategorias.Insert(categoria); return(RedirectToAction("Index")); } else { ModelState.AddModelError("", "Ya existe una categoria con el mismo nombre."); if (RepositorioCategorias.GetCategoriaByNombre(categoria.Nombre).Estatus == false) { ViewBag.Recuperacion = true; ViewBag.IdEncRec = RepositorioCategorias.GetCategoriaByNombre(categoria.Nombre).Id; } return(View(categoria)); } //} //catch (Exception ex) //{ // ModelState.AddModelError("", ex.Message); // return View(categoria); //} } else { return(View(categoria)); } }
public IActionResult Editar(CategoriaViewModel categoria_VM) { if (ModelState.IsValid) { try { CategoriasRepository categoriasRepository = new CategoriasRepository(); var categoriaResult = categoriasRepository.GetCategoriaByNombre(categoria_VM.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(categoria_VM.Nombre); if (!resultado) { ModelState.AddModelError("", "No se aceptan números y caracteres especiales en el nombre (Solo: a-z, A-Z)."); return(View(categoria_VM)); } Regex regexNoNumStart = new Regex(@"[0-9]| $"); bool resultadoNoNumStart = false; string textoFirstChart = categoria_VM.Nombre.Substring(0, 1); resultadoNoNumStart = regexNoNumStart.IsMatch(textoFirstChart); if (resultadoNoNumStart) { ModelState.AddModelError("", "No se permite iniciar con NÚMERO o con ESPACIO."); return(View(categoria_VM)); } if (categoriaResult == null) { categoriasRepository.UpdateCategoriaVM(categoria_VM); return(RedirectToAction("Categoria", "Administrador")); } else if (categoriaResult.IdCategoria == categoria_VM.IdCategoria) { categoriaResult.Nombre = categoria_VM.Nombre; categoriasRepository.Update(categoriaResult); return(RedirectToAction("Categoria", "Administrador")); } else { ModelState.AddModelError("", "Ya existe esta categoría."); return(View(categoria_VM)); } } catch (Exception ex) { ModelState.AddModelError("", ex.Message); return(View(categoria_VM)); } } else { return(View(categoria_VM)); } }