public async Task <IActionResult> IngresaUsuario(UsuarioViewModel usuarionNew) { if (!User.Identity.IsAuthenticated) { return(RedirectToAction("Logout", "Account")); } //if (string.IsNullOrEmpty(HttpContext.Session.GetString("cod_rol"))) // return RedirectToAction("Logout", "Account"); // if (usuarionNew == null) // return RedirectToAction("Logout", "Account"); int codigoRol = Convert.ToInt32(HttpContext.Session.GetString("cod_rol")); int codigoProvincia = Convert.ToInt32(HttpContext.Session.GetString("cod_provincia")); auxiliar = new Auxiliar(); switch (codigoRol) { case 1: var provincias = (from Provincia in auc.PROVINCIA where Provincia.COD_PROVINCIA == 0 orderby Provincia.NOM_PROVINCIA select new SelectListItem() { Text = Provincia.NOM_PROVINCIA, Value = Provincia.COD_PROVINCIA.ToString() }).ToList(); var roles = (from Rol in auc.ROL where Rol.COD_ROL == 2 select new SelectListItem() { Text = Rol.DES_ROL, Value = Rol.COD_ROL.ToString(), Selected = false }).ToList(); usuarionNew.provincias = provincias; usuarionNew.roles = roles; break; case 2: provincias = (from Provincia in auc.PROVINCIA where Provincia.COD_PROVINCIA >= 0 && Provincia.COD_PROVINCIA < 26 orderby Provincia.NOM_PROVINCIA select new SelectListItem() { Text = Provincia.NOM_PROVINCIA, Value = Provincia.COD_PROVINCIA.ToString() }).ToList(); provincias.Insert(0, new SelectListItem() { Text = "----Elija Provincia----", Value = string.Empty }); roles = (from Rol in auc.ROL where Rol.COD_ROL == 3 || Rol.COD_ROL == 5 || Rol.COD_ROL == 8 select new SelectListItem() { Text = Rol.DES_ROL, Value = Rol.COD_ROL.ToString(), Selected = false }).ToList(); roles.Insert(0, new SelectListItem() { Text = "----Elija Rol----", Value = string.Empty }); usuarionNew.provincias = provincias; usuarionNew.roles = roles; break; case 3: provincias = (from Provincia in auc.PROVINCIA where Provincia.COD_PROVINCIA == codigoProvincia orderby Provincia.NOM_PROVINCIA select new SelectListItem() { Text = Provincia.NOM_PROVINCIA, Value = Provincia.COD_PROVINCIA.ToString() }).ToList(); roles = (from Rol in auc.ROL where Rol.COD_ROL == 4 select new SelectListItem() { Text = Rol.DES_ROL, Value = Rol.COD_ROL.ToString(), Selected = false }).ToList(); usuarionNew.provincias = provincias; usuarionNew.roles = roles; break; } if (!auxiliar.validarCedula(usuarionNew.CEDULAC)) { ModelState.AddModelError(string.Empty, "La cédula ingresada es incorrecta."); return(View(usuarionNew)); } Usuario validacionUsuario = servicioUsuario.GetUsuarioxCedulaMail(usuarionNew.CEDULAC.Substring(0, 9), usuarionNew.MAIL); // validacionUsuario = servicioUsuario.GetUsuario(usuarionNew.CEDULAC); if (validacionUsuario != null) { ModelState.AddModelError(string.Empty, "Ya existe un usuario con la cédula o correo ingresada."); return(View(usuarionNew)); } UsuarioResponse usuario = new UsuarioResponse() { CEDULA = usuarionNew.CEDULAC, CODIGO_PROVINCIA = usuarionNew.codProvincia, CLAVE = usuarionNew.CLAVE, CODIGO_ROL = usuarionNew.codRol, COD_USUARIO = usuarionNew.COD_USUARIO, ESTADO = true, LOGEO = usuarionNew.LOGEO, MAIL = usuarionNew.MAIL.ToLower(), NOMBRE = usuarionNew.NOMBRE, TELEFONO = usuarionNew.TELEFONO, PROVINCIA = usuarionNew.PROVINCIA, ROL = usuarionNew.ROL }; if (usuario.CODIGO_PROVINCIA == 0 && usuario.CODIGO_ROL == 3) { ModelState.AddModelError(string.Empty, "Debe seleccionar una provincia"); return(View(usuarionNew)); } if ((usuario.CODIGO_PROVINCIA > 0) && (usuario.CODIGO_ROL == 8 || usuario.CODIGO_ROL == 5)) { ModelState.AddModelError(string.Empty, "El rol seleccionado es de carácter nacional, seleccione Ecuador"); return(View(usuarionNew)); } int respuesta = await servicioUsuario.IngresaUsuario(usuario); if (respuesta > 0) { var nombreUsuario = User.Claims.FirstOrDefault(x => x.Type == "Id").Value; _logger.LogInformation("Usuario:" + nombreUsuario + " Ingresa: " + usuario.CEDULA); ViewBag.Message = "Usuario ingresado exitosamente!"; return(RedirectToAction(nameof(Index))); } else { if (usuario.CLAVE == "12345678" || usuario.CLAVE == "87654321") { ModelState.AddModelError(string.Empty, "La clave no puede ser números consecutivos"); } else { ModelState.AddModelError(string.Empty, "Existió un error al ingresar el usuario."); } return(View(usuarionNew)); } }