public async Task <IActionResult> CrearRolesNivelOperativo(RequerimientoRolPorGrupoOcupacionalViewModel modelo, int id, string nombre)
        {
            var requerimientoRolPorDependenciaViewModel = new RequerimientoRolPorDependenciaViewModel();

            requerimientoRolPorDependenciaViewModel.IdDependencia     = id;
            requerimientoRolPorDependenciaViewModel.NombreDependencia = nombre;

            requerimientoRolPorDependenciaViewModel.RolesNivelOperativo = modelo;
            InicializarMensaje(null);

            try
            {
                if (!ModelState.IsValid)
                {
                    InicializarMensaje(Mensaje.ModeloInvalido);
                }

                Response response = await apiServicio.InsertarAsync <RequerimientoRolPorDependenciaViewModel>(requerimientoRolPorDependenciaViewModel, new Uri(WebApp.BaseAddress), "api/SituacionPropuesta/InsertarNivelesOperativos");

                if (response.IsSuccess)
                {
                    return(RedirectToAction("Index", "SituacionPropuesta", new { mensaje = response.Message }));
                }



                return(View(requerimientoRolPorDependenciaViewModel));
            }
            catch (Exception ex)
            {
                return(View(requerimientoRolPorDependenciaViewModel));
            }
        }
        public async Task <IActionResult> Delete(int idDependencia, int idRol)
        {
            var modelo = new RequerimientoRolPorDependenciaViewModel();

            modelo.IdDependencia = idDependencia;

            var objeto = new RequerimientoRolPorGrupoOcupacionalViewModel();

            objeto.ListaRolesRequeridos = new List <RequerimientoRolViewModel>();
            objeto.ListaRolesRequeridos.Add(
                new RequerimientoRolViewModel
            {
                IdRolPuesto = idRol
            }
                );

            modelo.RolesNivelJerarquicoSuperior = objeto;


            try
            {
                Response response = await apiServicio.EliminarAsync(modelo, new Uri(WebApp.BaseAddress), "api/SituacionPropuesta/EliminarRolPorDependencia");

                return(RedirectToAction("Index", "SituacionPropuesta", new { mensaje = response.Message }));
            } catch (Exception ex) {
                return(RedirectToAction("Index", "SituacionPropuesta", new { mensaje = Mensaje.ErrorServicio }));
            }
        }
        public async Task <IActionResult> Index(string mensaje)
        {
            InicializarMensaje(mensaje);

            var modelo = new RequerimientoRolPorDependenciaViewModel();

            modelo.RolesNivelJerarquicoSuperior = new RequerimientoRolPorGrupoOcupacionalViewModel();
            modelo.RolesNivelOperativo          = new RequerimientoRolPorGrupoOcupacionalViewModel();
            modelo.RolesNivelJerarquicoSuperior.ListaRolesRequeridos = new List <RequerimientoRolViewModel>();
            modelo.RolesNivelOperativo.ListaRolesRequeridos          = new List <RequerimientoRolViewModel>();

            modelo.IdDependencia = 0;


            try
            {
                var claim = HttpContext.User.Identities.Where(x => x.NameClaimType == ClaimTypes.Name).FirstOrDefault();

                if (claim.IsAuthenticated == true)
                {
                    var token         = claim.Claims.Where(c => c.Type == ClaimTypes.SerialNumber).FirstOrDefault().Value;
                    var NombreUsuario = claim.Claims.Where(c => c.Type == ClaimTypes.Name).FirstOrDefault().Value;


                    modelo.NombreUsuario = NombreUsuario;


                    // Obtención de datos para generar pantalla
                    var respuesta = await apiServicio.ObtenerElementoAsync <RequerimientoRolPorDependenciaViewModel>(modelo, new Uri(WebApp.BaseAddress), "api/SituacionPropuesta/ObtenerRequerimientoRolPorDependencia");

                    if (respuesta.IsSuccess)
                    {
                        respuesta.Resultado = JsonConvert.DeserializeObject <RequerimientoRolPorDependenciaViewModel>(respuesta.Resultado.ToString());

                        return(View(respuesta.Resultado));
                    }
                    else
                    {
                        return(RedirectToAction("AutorizacionError", "SituacionPropuesta", new { mensaje = respuesta.Message }));
                    }
                }

                return(RedirectToAction("Login", "Login"));
            }
            catch (Exception ex)
            {
                if (String.IsNullOrEmpty(mensaje) == true)
                {
                    mensaje = Mensaje.Excepcion;
                }

                InicializarMensaje(mensaje);

                return(View(modelo));
            }
        }
        /*
         * [HttpPost]
         * [ValidateAntiForgeryToken]
         * public async Task<IActionResult> Index()
         * {
         *  return RedirectToAction("Index");
         * }
         */

        public async Task <IActionResult> CrearRolesNivelSuperior(string mensaje, string id)
        {
            var modelo = new RequerimientoRolPorDependenciaViewModel();

            modelo.IdDependencia = Convert.ToInt32(id);

            InicializarMensaje(mensaje);

            try
            {
                var claim = HttpContext.User.Identities.Where(x => x.NameClaimType == ClaimTypes.Name).FirstOrDefault();

                if (claim.IsAuthenticated == true)
                {
                    var token         = claim.Claims.Where(c => c.Type == ClaimTypes.SerialNumber).FirstOrDefault().Value;
                    var NombreUsuario = claim.Claims.Where(c => c.Type == ClaimTypes.Name).FirstOrDefault().Value;


                    modelo.NombreUsuario = NombreUsuario;


                    // Obtención de datos para generar pantalla
                    var respuesta = await apiServicio.ObtenerElementoAsync <RequerimientoRolPorDependenciaViewModel>(modelo, new Uri(WebApp.BaseAddress), "api/SituacionPropuesta/CrearRequerimientoRolPorDependencia");

                    if (respuesta.IsSuccess)
                    {
                        respuesta.Resultado = respuesta.Resultado = JsonConvert.DeserializeObject <RequerimientoRolPorDependenciaViewModel>(respuesta.Resultado.ToString());;

                        return(View(respuesta.Resultado));
                    }
                    else
                    {
                        return(RedirectToAction("AutorizacionError", "SituacionPropuesta", new { mensaje = respuesta.Message }));
                    }
                }

                return(RedirectToAction("Login", "Login"));
            }
            catch (Exception ex)
            {
                return(RedirectToAction("Index", "SituacionPropuesta", new { mensaje = Mensaje.ErrorServicio }));
            }
        }
        public async Task <IActionResult> CerrarProceso(int id)
        {
            try {
                var modelo = new RequerimientoRolPorDependenciaViewModel();
                modelo.IdDependencia = id;

                var respuesta = await apiServicio.ObtenerElementoAsync <RequerimientoRolPorDependenciaViewModel>(modelo, new Uri(WebApp.BaseAddress), "api/SituacionPropuesta/CerrarProcesoRequerimientoPersona");


                if (respuesta.IsSuccess)
                {
                    return(RedirectToAction("AutorizacionError", "SituacionPropuesta", new { mensaje = respuesta.Message }));
                }

                return(RedirectToAction("Index", "SituacionPropuesta", new { mensaje = respuesta.Message }));
            }
            catch (Exception ex) {
                return(RedirectToAction("Index", "SituacionPropuesta", new { mensaje = Mensaje.Excepcion }));
            }
        }