/// <summary>
        /// Obtiene la lista para mostrar en el grid
        /// </summary>
        private void ObtenerListaProgramacionInicial(int inicio, int limite)
        {
            try
            {
                var embarquePL             = new EmbarquePL();
                FiltroEmbarqueInfo filtros = ObtenerFiltrosInicial();

                if (filtros != null)
                {
                    var pagina = new PaginacionInfo {
                        Inicio = inicio, Limite = limite
                    };
                    ResultadoInfo <EmbarqueInfo> resultadoEmbarqueInfo = embarquePL.ObtenerPorPagina(pagina, filtros);

                    if (resultadoEmbarqueInfo != null && resultadoEmbarqueInfo.Lista != null &&
                        resultadoEmbarqueInfo.Lista.Count > 0)
                    {
                        var source = (from item in resultadoEmbarqueInfo.Lista
                                      let escala = item.ListaEscala.FirstOrDefault()
                                                   where escala != null
                                                   select new
                        {
                            item.FolioEmbarque,
                            TipoOrganizacion =
                                escala.OrganizacionOrigen.TipoOrganizacion.Descripcion,
                            OrganizacionOrigen = escala.OrganizacionOrigen.Descripcion,
                            OrganizacionDestino = escala.OrganizacionDestino.Descripcion,
                            escala.FechaSalida,
                            escala.FechaLlegada,
                            TipoEmbarque = item.TipoEmbarque.Descripcion,
                            escala.Chofer.NombreCompleto,
                            escala.Camion.PlacaCamion,
                            Estatus = ((Estatus)item.Estatus).ToString(),
                            escala.OrganizacionDestino.OrganizacionID
                        }
                                      ).ToList();

                        DgEmbarques.ItemsSource     = source;
                        ucPaginacion.TotalRegistros = resultadoEmbarqueInfo.TotalRegistros;
                    }
                    else
                    {
                        SkMessageBox.Show(Application.Current.Windows[ConstantesVista.WindowPrincipal], Properties.Resources.ProgramacionEmbarque_SinProgramacion, MessageBoxButton.OK,
                                          MessageImage.Warning);

                        ucPaginacion.TotalRegistros = 0;
                        DgEmbarques.ItemsSource     = new List <EmbarqueInfo>();
                    }
                }
            }
            catch (ExcepcionGenerica)
            {
                throw;
            }
            catch (Exception ex)
            {
                throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex);
            }
        }
        /// <summary>
        ///  Obtiene la lista para mostrar en el grid
        /// </summary>
        /// <param name="inicio"></param>
        /// <param name="limite"></param>
        private void ObtenerListaProgramacion(int inicio, int limite)
        {
            try
            {
                var embarquePL             = new EmbarquePL();
                FiltroEmbarqueInfo filtros = ObtenerFiltrosInicial();
                if (ucPaginacion.Contexto == null)
                {
                    ucPaginacion.Contexto = filtros;
                }
                if (ucPaginacion.ContextoAnterior != null)
                {
                    bool contextosIguales = ucPaginacion.CompararObjetos(filtros, ucPaginacion.Contexto) &&
                                            ucPaginacion.CompararObjetos(filtros, ucPaginacion.ContextoAnterior);
                    if (!contextosIguales)
                    {
                        ucPaginacion.Inicio = 1;
                        inicio = 1;
                    }
                }
                var pagina = new PaginacionInfo {
                    Inicio = inicio, Limite = limite
                };
                ResultadoInfo <EmbarqueInfo> resultadoEmbarqueInfo = embarquePL.ObtenerPorPagina(pagina, filtros);

                if (resultadoEmbarqueInfo != null && resultadoEmbarqueInfo.Lista != null &&
                    resultadoEmbarqueInfo.Lista.Count > 0)
                {
                    var source = (from item in resultadoEmbarqueInfo.Lista
                                  let escala = item.ListaEscala.FirstOrDefault()
                                               where escala != null
                                               select new
                    {
                        item.FolioEmbarque,
                        TipoOrganizacion =
                            escala.OrganizacionOrigen.TipoOrganizacion.Descripcion,
                        OrganizacionOrigen = escala.OrganizacionOrigen.Descripcion,
                        OrganizacionDestino = escala.OrganizacionDestino.Descripcion,
                        escala.FechaSalida,
                        escala.FechaLlegada,
                        TipoEmbarque = item.TipoEmbarque.Descripcion,
                        escala.Chofer.NombreCompleto,
                        escala.Camion.PlacaCamion,
                        Estatus = ((Estatus)item.Estatus).ToString(),
                        escala.OrganizacionDestino.OrganizacionID
                    }
                                  ).ToList();

                    DgEmbarques.ItemsSource     = source;
                    ucPaginacion.TotalRegistros = resultadoEmbarqueInfo.TotalRegistros;
                }
                else
                {
                    ucPaginacion.TotalRegistros = 0;
                    DgEmbarques.ItemsSource     = new List <EmbarqueInfo>();
                }
            }
            catch (ExcepcionGenerica)
            {
                throw;
            }
            catch (Exception ex)
            {
                throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex);
            }
        }