/// <summary>
        /// Consultar todos empleados registrados
        /// </summary>
        /// <param name="uris">Url consumo de servicios</param>
        /// <param name="logger">Logger de aplicacion </param>
        /// <param name="cache"></param>
        /// <returns>Empleados a consultar</returns>
        public static dynamic ListarEmpleadosAction(IOptions <Uris> uris, ILogger logger, IDistributedCache cache)
        {
            var valorRetorno = string.Empty;

            try
            {
                if (uris != null && logger != null && cache != null)
                {
                    using (PruebaIntergrupoContext db = new PruebaIntergrupoContext())
                    {
                        var data = (from item in db.Empleado
                                    select new Empleado {
                            DocumentoIdentidad = item.DocumentoIdentidad,
                            NombreEmpleado = item.NombreEmpleado,
                            ApellidoEmpleado = item.ApellidoEmpleado,
                            Cargo = item.Cargo,
                            IdEmpleado = item.IdEmpleado
                        });

                        valorRetorno = JsonConvert.SerializeObject(data, Formatting.None);
                    }
                }
                else
                {
                    logger.LogCritical("Problemas al leer los parámetros");
                }
            }
            catch (Exception er)
            {
                logger.LogCritical("Error al procesar datos de los empleados; Error = " + er.ToString());
            }
            return(valorRetorno);
        }
        /// <summary>
        /// Empleados a consultar
        /// </summary>
        /// <param name="cedula">Numero de empleado a validar</param>
        /// <param name="uris">Url consumo de servicios</param>
        /// <param name="logger">Logger de aplicacion </param>
        /// <param name="cache"></param>
        /// <returns>Empleados a consultar</returns>
        public static dynamic ConsultarDatosEmpleado(string cedula, IOptions <Uris> uris, ILogger logger, IDistributedCache cache)
        {
            var valorRetorno = string.Empty;

            try
            {
                if (uris != null && logger != null && cache != null)
                {
                    using (PruebaIntergrupoContext db = new PruebaIntergrupoContext())
                    {
                        var data = (from item in db.Empleado
                                    where item.DocumentoIdentidad == cedula
                                    select item).FirstOrDefault();

                        if (data != null && !String.IsNullOrEmpty(data.DocumentoIdentidad))
                        {
                            valorRetorno = JsonConvert.SerializeObject(data);
                        }
                    }
                }
                else
                {
                    logger.LogCritical("Problemas al leer los parámetros");
                }
            }catch (Exception er)
            {
                logger.LogCritical("Error al procesar datos del empleado; Error = " + er.ToString());
            }
            return(valorRetorno);
        }
        /// <summary>
        /// Crear un nuevo empleado en BD
        /// </summary>
        /// <param name="newEmpleado">Objeto de empleado a regsitrar</param>
        /// <param name="uris">Url consumo de servicios</param>
        /// <param name="logger">Logger de aplicacion </param>
        /// <param name="cache"></param>
        /// <returns>mensaje de ejecucion</returns>
        public static dynamic CrearEmpleadoAction(JObject newEmpleado, IOptions <Uris> uris, ILogger logger, IDistributedCache cache)
        {
            string retorno = "registro fallido";

            if (newEmpleado.Count > 0)
            {
                Empleado dataAsociacion = JsonConvert.DeserializeObject <Empleado>(newEmpleado.ToString());
                using (PruebaIntergrupoContext db = new PruebaIntergrupoContext())
                {
                    db.Empleado.Add(dataAsociacion);
                    db.SaveChanges();

                    retorno = "registro exitoso";
                }
            }
            return(retorno);
        }
        /// <summary>
        /// Validar login del empleado
        /// </summary>
        /// <param name="identificacion">identificacion del empleado</param>
        /// <param name="contrasena">Contraseña del empleado</param>
        /// <param name="uris">Url consumo de servicios</param>
        /// <param name="logger">Logger de aplicacion </param>
        /// <param name="cache"></param>
        /// <returns></returns>
        public static dynamic validarLoginEmpleadoAction(string identificacion, string contrasena, IOptions <Uris> uris, ILogger logger, IDistributedCache cache)
        {
            string retorno = "No se enviaron los datos para loguear el empleado";

            if (!String.IsNullOrEmpty(identificacion) && !String.IsNullOrEmpty(contrasena))
            {
                using (PruebaIntergrupoContext db = new PruebaIntergrupoContext())
                {
                    Empleado dataEmpleado = db.Empleado.Where(x => x.DocumentoIdentidad == identificacion).FirstOrDefault();

                    if (dataEmpleado != null && !String.IsNullOrEmpty(dataEmpleado.DocumentoIdentidad))
                    {
                        retorno = (dataEmpleado.contrasena == contrasena) ? "OK" : "La contraseña es errada";
                    }
                    else
                    {
                        retorno = "El empleado descrito con la identificacion: " + identificacion + ", no existe en base de datos";
                    }
                }
            }
            return(retorno);
        }
        /// <summary>
        /// Actualizar un empleado en BD
        /// </summary>
        /// <param name="updEmpleado">Objeto de empleado a actualizar</param>
        /// <param name="uris">Url consumo de servicios</param>
        /// <param name="logger">Logger de aplicacion </param>
        /// <param name="cache"></param>
        /// <returns>mensaje de ejecucion</returns>
        public static dynamic ActualizarEmpleadoAction(JObject updEmpleado, IOptions <Uris> uris, ILogger logger, IDistributedCache cache)
        {
            string retorno = "Actualizacion fallida";

            if (updEmpleado.Count > 0)
            {
                Empleado dataActualizacion = JsonConvert.DeserializeObject <Empleado>(updEmpleado.ToString());
                using (PruebaIntergrupoContext db = new PruebaIntergrupoContext())
                {
                    Empleado dataNueva = db.Empleado.Where(x => x.DocumentoIdentidad == dataActualizacion.DocumentoIdentidad).FirstOrDefault();

                    dataNueva.NombreEmpleado   = (dataNueva.NombreEmpleado != dataActualizacion.NombreEmpleado) ? dataActualizacion.NombreEmpleado : dataNueva.NombreEmpleado;
                    dataNueva.Cargo            = (dataNueva.Cargo != dataActualizacion.Cargo) ? dataActualizacion.Cargo : dataNueva.Cargo;
                    dataNueva.ApellidoEmpleado = (dataNueva.ApellidoEmpleado != dataActualizacion.ApellidoEmpleado) ? dataActualizacion.ApellidoEmpleado : dataNueva.ApellidoEmpleado;

                    db.SaveChanges();

                    retorno = "Actualizacion exitosa";
                }
            }
            return(retorno);
        }