/// <summary>
        /// Obtienen un listado con todos los organismo que ha integrado el funcionario
        /// </summary>
        /// <param name="idFuncionario"></param>
        /// <returns></returns>
        public ObservableCollection<Integraciones> GetHistorialFuncionarios(int idFuncionario)
        {
            ObservableCollection<Integraciones> listaIntegracion = new ObservableCollection<Integraciones>();

            SqlConnection oleConne = new SqlConnection(ConfigurationManager.ConnectionStrings["Directorio"].ToString());
            SqlCommand cmd = null;
            SqlDataReader reader = null;

            String sqlCadena = "SELECT H.IdIntegracion, I.FechaIntegracion, O.Organismo " +
                                " FROM (HistorialIntegracion H INNER JOIN Integraciones I ON H.IdIntegracion = I.IdIntegracion) " + 
                                " INNER JOIN Organismos O ON I.IdOrganismo = O.IdOrganismo " + 
                                " WHERE H.IdFuncionario = @IdFuncionario";

            try
            {
                oleConne.Open();

                cmd = new SqlCommand(sqlCadena, oleConne);
                cmd.Parameters.AddWithValue("@IdFuncionario", idFuncionario);
                reader = cmd.ExecuteReader();

                if (reader.HasRows)
                {
                    while (reader.Read())
                    {
                        Integraciones integracion = new Integraciones()
                        {
                            IdIntegracion = reader["IdIntegracion"] as int? ?? -1,
                            FechaIntegracion = DateTimeUtilities.GetDateFromReader(reader, "FechaIntegracion"),
                            Organismo = reader["Organismo"].ToString()
                        };

                        listaIntegracion.Add(integracion);
                    }
                }
            }
            catch (SqlException ex)
            {
                string methodName = System.Reflection.MethodBase.GetCurrentMethod().Name;
                ErrorUtilities.SetNewErrorMessage(ex, methodName + " Exception, FuncionariosModel", 0);
            }
            catch (Exception ex)
            {
                string methodName = System.Reflection.MethodBase.GetCurrentMethod().Name;
                ErrorUtilities.SetNewErrorMessage(ex, methodName + " Exception, FuncionariosModel", 0);
            }
            finally
            {
                cmd.Dispose();
                reader.Close();
                oleConne.Close();
            }

            return listaIntegracion;
        }
        /// <summary>
        /// Obtiene un listado con el historial de integraciones del Organismo
        /// </summary>
        /// <returns></returns>
        public ObservableCollection<Integraciones> GetIntegracionesByOrganismo()
        {
            ObservableCollection<Integraciones> listaIntegraciones = new ObservableCollection<Integraciones>();

            SqlConnection oleConne = new SqlConnection(ConfigurationManager.ConnectionStrings["Directorio"].ToString());
            SqlCommand cmd = null;
            SqlDataReader reader = null;

            const String SqlQuery = "SELECT IdIntegracion,FechaIntegracion FROM Integraciones WHERE IdOrganismo = @IdOrganismo";

            FuncionariosModel model = new FuncionariosModel();

            try
            {
                oleConne.Open();

                cmd = new SqlCommand(SqlQuery, oleConne);
                cmd.Parameters.AddWithValue("@IdOrganismo", idOrganismo);
                reader = cmd.ExecuteReader();

                if (reader.HasRows)
                {
                    while (reader.Read())
                    {
                        Integraciones integracion = new Integraciones();

                        integracion.IdIntegracion = reader["IdIntegracion"] as int? ?? 0;
                        integracion.FechaIntegracion = DateTimeUtilities.GetDateFromReader(reader, "FechaIntegracion");
                        integracion.Integrantes = model.GetFuncionariosByIntegracion(integracion.IdIntegracion);
                        integracion.Presidentes = model.GetPresidentesByIntegracion(integracion.IdIntegracion);

                        listaIntegraciones.Add(integracion);
                    }
                }
            }
            catch (SqlException ex)
            {
                string methodName = System.Reflection.MethodBase.GetCurrentMethod().Name;
                ErrorUtilities.SetNewErrorMessage(ex, methodName + " Exception, IntegracionesModel", 0);
            }
            catch (Exception ex)
            {
                string methodName = System.Reflection.MethodBase.GetCurrentMethod().Name;
                ErrorUtilities.SetNewErrorMessage(ex, methodName + " Exception, IntegracionesModel", 0);
            }
            finally
            {
                cmd.Dispose();
                reader.Close();
                oleConne.Close();
            }

            return listaIntegraciones;
        }