public async Task <IActionResult> ConsultarDependencia(int id)
        {
            var modelo = new DependenciaDatosViewModel();

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

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

                    var empleado = await apiServicio.ObtenerElementoAsync1 <Empleado>(
                        NombreUsuario,
                        new Uri(WebApp.BaseAddress),
                        "api/Empleados/EmpleadoSegunNombreUsuario");

                    if (empleado.EsJefe == true)
                    {
                        var enviar = new IdFiltrosViewModel {
                            IdDependencia = id
                        };

                        modelo = await apiServicio.ObtenerElementoAsync1 <DependenciaDatosViewModel>(
                            enviar,
                            new Uri(WebApp.BaseAddress),
                            "api/Dependencias/ObtenerDependenciaDatosViewModelPorIdDependencia");

                        return(View(modelo));
                    }

                    return(this.Redireccionar(
                               "SolicitarPlanificacionVacaciones",
                               "Index",
                               $"{Mensaje.Informacion}|{Mensaje.AccesoNoAutorizado}"
                               ));
                }

                return(RedirectToAction("Login", "Login"));
            }
            catch (Exception ex)
            {
                return(BadRequest());
            }
        }
Esempio n. 2
0
        public async Task <DependenciaDatosViewModel> ObtenerDependenciaDatosViewModelPorIdDependencia([FromBody] IdFiltrosViewModel idFiltrosViewModel)
        {
            try
            {
                var dependencia = await db.Dependencia
                                  .Include(i => i.Sucursal)
                                  .Where(w => w.IdDependencia == idFiltrosViewModel.IdDependencia).FirstOrDefaultAsync();

                var modelo = new DependenciaDatosViewModel
                {
                    IdDependencia     = dependencia.IdDependencia,
                    IdSucursal        = dependencia.IdSucursal,
                    NombreDependencia = dependencia.Nombre,
                    NombreSucursal    = dependencia.Sucursal.Nombre,

                    DatosBasicosEmpleadoJefeViewModel = db.Empleado
                                                        .Where(we =>
                                                               we.IdDependencia == dependencia.IdDependencia &&
                                                               we.EsJefe == true &&
                                                               we.Activo == true
                                                               )
                                                        .Select(se => new DatosBasicosEmpleadoViewModel
                    {
                        IdEmpleado = se.IdEmpleado,
                        IdPersona  = se.IdPersona,
                        Nombres    = se.Persona.Nombres,
                        Apellidos  = se.Persona.Apellidos
                    }

                                                                ).FirstOrDefault()
                    ,


                    ListaDependenciasHijas = await ObtenerDependenciasHijas(dependencia.IdDependencia),

                    ListaEmpleadosDependencia = await db.Empleado
                                                .Where(wl =>
                                                       wl.Activo == true &&
                                                       wl.IdDependencia == dependencia.IdDependencia &&
                                                       wl.EsJefe == false
                                                       )
                                                .Select(s1 => new DatosBasicosEmpleadoViewModel
                    {
                        IdEmpleado     = s1.IdEmpleado,
                        IdPersona      = s1.IdPersona,
                        Nombres        = s1.Persona.Nombres,
                        Apellidos      = s1.Persona.Apellidos,
                        Identificacion = s1.Persona.Identificacion
                    }
                                                        )
                                                .ToListAsync()
                };


                return(modelo);
            }
            catch (Exception ex)
            {
                return(new DependenciaDatosViewModel());
            }
        }