public void ObtenerIngresos()
        {
            var Anio  = 0;
            var Folio = 0;

            int.TryParse(AnioBuscarImputado, out Anio);
            int.TryParse(FolioBuscarImputado, out Folio);

            var Ingresos = new cIngreso().ObtenerTodosReporte(GlobalVar.gCentro, Anio != 0 ? Anio : 0, Folio != 0 ? Folio : 0, !string.IsNullOrEmpty(NombreBuscarImputado) ? NombreBuscarImputado : string.Empty, !string.IsNullOrEmpty(PaternoBuscarImputado) ? PaternoBuscarImputado : string.Empty, !string.IsNullOrEmpty(MaternoBuscarImputado) ? MaternoBuscarImputado : string.Empty);

            if (Ingresos.Any())
            {
                Pagina++;
                SeguirCargandoIngresos = true;
                var lista_ingresos = new List <cFormatoIdentificacion>(ListaIngresos);
                foreach (var Ingreso in Ingresos)
                {
                    var foto_ingreso = Ingreso.INGRESO_BIOMETRICO.Where(w => w.BIOMETRICO_TIPO.ID_TIPO_BIOMETRICO == (short)enumTipoBiometrico.FOTO_FRENTE_REGISTRO).FirstOrDefault();
                    var foto_centro  = Ingreso.INGRESO_BIOMETRICO.Where(w => w.BIOMETRICO_TIPO.ID_TIPO_BIOMETRICO == (short)enumTipoBiometrico.FOTO_FRENTE_SEGUIMIENTO).FirstOrDefault();
                    var interno      = new cFormatoIdentificacion()
                    {
                        Id_Anio     = Ingreso.ID_ANIO,
                        Id_Imputado = Ingreso.ID_IMPUTADO,
                        Id_ingreso  = Ingreso.ID_INGRESO,
                        Nombre      = !string.IsNullOrEmpty(Ingreso.IMPUTADO.NOMBRE) ? Ingreso.IMPUTADO.NOMBRE.TrimEnd() : string.Empty,
                        Paterno     = !string.IsNullOrEmpty(Ingreso.IMPUTADO.PATERNO) ? Ingreso.IMPUTADO.PATERNO.TrimEnd() : string.Empty,
                        Materno     = !string.IsNullOrEmpty(Ingreso.IMPUTADO.MATERNO) ? Ingreso.IMPUTADO.MATERNO.TrimEnd() : string.Empty,
                    };
                    if (ListaIngresosSeleccionados.Any())
                    {
                        if (!(ListaIngresosSeleccionados.Count(c =>
                                                               c.Id_Anio == interno.Id_Anio &&
                                                               c.Id_Imputado == interno.Id_Imputado &&
                                                               c.Id_ingreso == interno.Id_ingreso) > 0))
                        {
                            lista_ingresos.Add(interno);
                        }
                    }
                    else
                    {
                        lista_ingresos.Add(interno);
                    }
                }
                ListaIngresos = lista_ingresos;
                EmptyVisible  = !lista_ingresos.Any();
            }
            else
            {
                SeguirCargandoIngresos = false;
            }
        }
        public async void ClickSwitch(object obj)
        {
            switch (obj.ToString())
            {
            case "GenerarReporte":
                if (!pConsultar)
                {
                    ReportViewerVisible = Visibility.Collapsed;
                    new Dialogos().ConfirmacionDialogo("Validación", "Su usuario no tiene privilegios para realizar esta acción");
                    break;
                }
                if (!ListaIngresosSeleccionados.Any())
                {
                    var mensaje    = System.Windows.Application.Current.Windows[0] as MetroWindow;
                    var mySettings = new MetroDialogSettings()
                    {
                        AffirmativeButtonText = "Cerrar",
                        AnimateShow           = true,
                        AnimateHide           = false
                    };
                    ReportViewerVisible = Visibility.Collapsed;
                    await mensaje.ShowMessageAsync("Validación", "Debe seleccionar al menos un interno para generar el reporte.", MessageDialogStyle.Affirmative, mySettings);

                    ReportViewerVisible = Visibility.Visible;
                }
                else
                {
                    ReportViewerVisible = Visibility.Collapsed;
                    Reporte.Reset();
                    await StaticSourcesViewModel.CargarDatosMetodoAsync(() =>
                    {
                        GenerarReporte();
                    });

                    ReportViewerVisible = Visibility.Visible;
                }
                break;

            case "ObtenerIngresos":
                try
                {
                    if (!pConsultar)
                    {
                        ReportViewerVisible = Visibility.Collapsed;
                        new Dialogos().ConfirmacionDialogo("Validación", "Su usuario no tiene privilegios para realizar esta acción");
                        break;
                    }
                    ReportViewerVisible = Visibility.Collapsed;
                    await StaticSourcesViewModel.CargarDatosMetodoAsync(() =>
                    {
                        Pagina        = 1;
                        ListaIngresos = new List <cCredencialBiblioteca>();
                        EmptyVisible  = true;
                        ObtenerIngresos();
                    });

                    ReportViewerVisible = Visibility.Visible;
                }
                catch (Exception ex)
                {
                    throw new ApplicationException(ex.Message);
                }
                break;

            case "Permitir":
                if (!SelectedIngreso.Seleccionado)
                {
                    SeleccionarTodosIngresos = false;
                }
                else
                {
                    SeleccionarTodosIngresos = !ListaIngresos.Where(w => !w.Seleccionado).Any();
                }
                break;

            case "SeleccionarTodosIngresos":
                if (ListaIngresos.Any())
                {
                    var lista_ingresos = new List <cCredencialBiblioteca>(ListaIngresos);
                    foreach (var Ingreso in lista_ingresos)
                    {
                        Ingreso.Seleccionado = SeleccionarTodosIngresos;
                    }
                    ListaIngresos = lista_ingresos;
                }
                else
                {
                    SeleccionarTodosIngresos = false;
                }
                break;

            case "PermitirSeleccionado":
                if (!SelectedIngresoSeleccionado.Seleccionado)
                {
                    SeleccionarTodosIngresosSeleccionados = false;
                }
                else
                {
                    SeleccionarTodosIngresosSeleccionados = !ListaIngresosSeleccionados.Where(w => !w.Seleccionado).Any();
                }
                break;

            case "SeleccionarTodosIngresosSeleccionados":
                if (ListaIngresosSeleccionados.Any())
                {
                    var lista_ingresos_Seleccionados = new List <cCredencialBiblioteca>(ListaIngresosSeleccionados);
                    foreach (var Ingreso in lista_ingresos_Seleccionados)
                    {
                        Ingreso.Seleccionado = SeleccionarTodosIngresosSeleccionados;
                    }
                    ListaIngresosSeleccionados = lista_ingresos_Seleccionados;
                }
                else
                {
                    SeleccionarTodosIngresosSeleccionados = false;
                }
                break;

            case "AgregarInternos":
                if (ListaIngresos.Any())
                {
                    if (ListaIngresos.Where(w => w.Seleccionado).Any())
                    {
                        var lista_ingresos = new List <cCredencialBiblioteca>(ListaIngresos);
                        var lista_ingresos_Seleccionados = new List <cCredencialBiblioteca>(
                            ListaIngresos.Where(w => w.Seleccionado).
                            OrderByDescending(oD => oD.Id_Anio).
                            ThenByDescending(tD => tD.Id_Imputado).
                            ToList());
                        foreach (var ingreso_Seleccionado in lista_ingresos_Seleccionados)
                        {
                            ingreso_Seleccionado.Seleccionado = false;
                            lista_ingresos.Remove(ingreso_Seleccionado);
                        }
                        ListaIngresos             = lista_ingresos.Any() ? lista_ingresos.OrderByDescending(oD => oD.Id_Anio).ThenByDescending(tD => tD.Id_Imputado).ToList() : new List <cCredencialBiblioteca>();
                        EmptyVisible              = !ListaIngresos.Any();
                        EmptySeleccionadosVisible = false;
                        ListaIngresosSeleccionados.AddRange(lista_ingresos_Seleccionados);
                        ListaIngresosSeleccionados = ListaIngresosSeleccionados.OrderByDescending(oD => oD.Id_Anio).ThenByDescending(tD => tD.Id_Imputado).ToList();
                        SeleccionarTodosIngresos   = false;
                    }
                    else
                    {
                        var mensaje    = System.Windows.Application.Current.Windows[0] as MetroWindow;
                        var mySettings = new MetroDialogSettings()
                        {
                            AffirmativeButtonText = "Cerrar",
                            AnimateShow           = true,
                            AnimateHide           = false
                        };
                        ReportViewerVisible = Visibility.Collapsed;
                        await mensaje.ShowMessageAsync("Validación", "Debe seleccionar al menos un interno.", MessageDialogStyle.Affirmative, mySettings);

                        ReportViewerVisible = Visibility.Visible;
                    }
                }
                else
                {
                    var mensaje    = System.Windows.Application.Current.Windows[0] as MetroWindow;
                    var mySettings = new MetroDialogSettings()
                    {
                        AffirmativeButtonText = "Cerrar",
                        AnimateShow           = true,
                        AnimateHide           = false
                    };
                    ReportViewerVisible = Visibility.Collapsed;
                    await mensaje.ShowMessageAsync("Validación", "Lista de internos vacía. Realice una búsqueda e intente de nuevo.", MessageDialogStyle.Affirmative, mySettings);

                    ReportViewerVisible = Visibility.Visible;
                }
                break;

            case "RemoverInternos":
                if (ListaIngresosSeleccionados.Any())
                {
                    if (ListaIngresosSeleccionados.Where(w => w.Seleccionado).Any())
                    {
                        var lista_ingresos = new List <cCredencialBiblioteca>(ListaIngresosSeleccionados);
                        var lista_ingresos_Seleccionados = new List <cCredencialBiblioteca>(
                            ListaIngresosSeleccionados.Where(w => w.Seleccionado).
                            OrderByDescending(oD => oD.Id_Anio).
                            ThenByDescending(tD => tD.Id_Imputado).
                            ToList());
                        foreach (var ingreso_Seleccionado in lista_ingresos_Seleccionados)
                        {
                            ingreso_Seleccionado.Seleccionado = false;
                            lista_ingresos.Remove(ingreso_Seleccionado);
                        }
                        ListaIngresosSeleccionados = lista_ingresos.Any() ? lista_ingresos.OrderByDescending(oD => oD.Id_Anio).ThenByDescending(tD => tD.Id_Imputado).ToList() : new List <cCredencialBiblioteca>();
                        EmptySeleccionadosVisible  = !ListaIngresosSeleccionados.Any();
                        EmptyVisible = false;
                        ListaIngresos.AddRange(lista_ingresos_Seleccionados);
                        ListaIngresos = ListaIngresos.OrderByDescending(oD => oD.Id_Anio).ThenByDescending(tD => tD.Id_Imputado).ToList();
                        SeleccionarTodosIngresosSeleccionados = false;
                    }
                    else
                    {
                        var mensaje    = System.Windows.Application.Current.Windows[0] as MetroWindow;
                        var mySettings = new MetroDialogSettings()
                        {
                            AffirmativeButtonText = "Cerrar",
                            AnimateShow           = true,
                            AnimateHide           = false
                        };
                        ReportViewerVisible = Visibility.Collapsed;
                        await mensaje.ShowMessageAsync("Validación", "Debe seleccionar al menos un interno.", MessageDialogStyle.Affirmative, mySettings);

                        ReportViewerVisible = Visibility.Visible;
                    }
                }
                else
                {
                    var mensaje    = System.Windows.Application.Current.Windows[0] as MetroWindow;
                    var mySettings = new MetroDialogSettings()
                    {
                        AffirmativeButtonText = "Cerrar",
                        AnimateShow           = true,
                        AnimateHide           = false
                    };
                    ReportViewerVisible = Visibility.Collapsed;
                    await mensaje.ShowMessageAsync("Validación", "Lista de internos Seleccionados vacía.", MessageDialogStyle.Affirmative, mySettings);

                    ReportViewerVisible = Visibility.Visible;
                }
                break;
            }
        }
        public void ObtenerIngresos()
        {
            short?nulo = null;

            var Ingresos = new cIngreso().ObtenerIngresosActivosFiltradosPorEdificio(GlobalVar.gCentro,
                                                                                     SelectedEdificio.ID_EDIFICIO != TODOS_LOS_EDIFICIOS ? SelectedEdificio.ID_EDIFICIO : nulo,
                                                                                     SelectedEdificio.ID_EDIFICIO != TODOS_LOS_EDIFICIOS ? (SelectedSector.ID_SECTOR != TODOS_LOS_SECTORES ? SelectedSector.ID_SECTOR : nulo) : nulo, Pagina,
                                                                                     BusquedaAvanzadaChecked && AnioBuscar.HasValue ? AnioBuscar.Value : 0,
                                                                                     BusquedaAvanzadaChecked && FolioBuscar.HasValue ? FolioBuscar.Value : 0,
                                                                                     BusquedaAvanzadaChecked && !string.IsNullOrEmpty(NombreBuscar) ? NombreBuscar : string.Empty,
                                                                                     BusquedaAvanzadaChecked && !string.IsNullOrEmpty(ApellidoPaternoBuscar) ? ApellidoPaternoBuscar : string.Empty,
                                                                                     BusquedaAvanzadaChecked && !string.IsNullOrEmpty(ApellidoMaternoBuscar) ? ApellidoMaternoBuscar : string.Empty).ToList();

            if (Ingresos.Any())
            {
                Pagina++;
                SeguirCargandoIngresos = true;
                var lista_ingresos = new List <cCredencialBiblioteca>(ListaIngresos);
                foreach (var Ingreso in Ingresos)
                {
                    var foto_ingreso = Ingreso.INGRESO_BIOMETRICO.Where(w => w.BIOMETRICO_TIPO.ID_TIPO_BIOMETRICO == (short)enumTipoBiometrico.FOTO_FRENTE_REGISTRO).FirstOrDefault();
                    var foto_centro  = Ingreso.INGRESO_BIOMETRICO.Where(w => w.BIOMETRICO_TIPO.ID_TIPO_BIOMETRICO == (short)enumTipoBiometrico.FOTO_FRENTE_SEGUIMIENTO).FirstOrDefault();
                    var cama         = new cCama().ObtenerCama((short)Ingreso.ID_UB_CENTRO, (short)Ingreso.ID_UB_EDIFICIO, (short)Ingreso.ID_UB_SECTOR, Ingreso.ID_UB_CELDA, (short)Ingreso.ID_UB_CAMA);
                    var interno      = new cCredencialBiblioteca()
                    {
                        Id_Centro     = Ingreso.ID_CENTRO,
                        Id_Anio       = Ingreso.ID_ANIO,
                        Id_Imputado   = Ingreso.ID_IMPUTADO,
                        Id_Ingreso    = Ingreso.ID_INGRESO,
                        Nombre        = !string.IsNullOrEmpty(Ingreso.IMPUTADO.NOMBRE) ? Ingreso.IMPUTADO.NOMBRE.TrimEnd() : string.Empty,
                        Paterno       = !string.IsNullOrEmpty(Ingreso.IMPUTADO.PATERNO) ? Ingreso.IMPUTADO.PATERNO.TrimEnd() : string.Empty,
                        Materno       = !string.IsNullOrEmpty(Ingreso.IMPUTADO.MATERNO) ? Ingreso.IMPUTADO.MATERNO.TrimEnd() : string.Empty,
                        CentroDescr   = Ingreso.CENTRO.DESCR.Replace("CERESO ", "").TrimStart().TrimEnd(),
                        EdificioDescr = cama.CELDA.SECTOR.EDIFICIO.DESCR.TrimEnd(),
                        SectorDescr   = cama.CELDA.SECTOR.DESCR.TrimEnd(),
                        Celda         = cama.ID_CELDA.TrimStart().TrimEnd(),
                        Foto          = foto_centro != null ? foto_centro.BIOMETRICO : (foto_ingreso != null ? foto_ingreso.BIOMETRICO : new Imagenes().getImagenPerson()),
                        CodigoBarras  = ObtenerCodigoBarras(Ingreso.IMPUTADO.NIP),
                        Seleccionado  = false,
                        FOTOCENTRO    = foto_centro != null ? foto_centro.BIOMETRICO : new Imagenes().getImagenPerson(),
                        FOTOINGRESO   = foto_ingreso != null ? foto_ingreso.BIOMETRICO : new Imagenes().getImagenPerson(),
                    };
                    if (ListaIngresosSeleccionados.Any())
                    {
                        if (!(ListaIngresosSeleccionados.Count(c =>
                                                               c.Id_Centro == interno.Id_Centro &&
                                                               c.Id_Anio == interno.Id_Anio &&
                                                               c.Id_Imputado == interno.Id_Imputado &&
                                                               c.Id_Ingreso == interno.Id_Ingreso) > 0))
                        {
                            interno.Seleccionado = SeleccionarTodosIngresos;
                            lista_ingresos.Add(interno);
                        }
                    }
                    else
                    {
                        interno.Seleccionado = SeleccionarTodosIngresos;
                        lista_ingresos.Add(interno);
                    }
                }
                ListaIngresos = lista_ingresos;
                EmptyVisible  = !lista_ingresos.Any();
            }
            else
            {
                SeguirCargandoIngresos = false;
            }
        }
Пример #4
0
        public void ObtenerIngresos()
        {
            short?nulo = null;

            var Ingresos = new cIngreso().ObtenerIngresosActivosFiltradosPorEdificio(GlobalVar.gCentro,
                                                                                     SelectedEdificio.ID_EDIFICIO != TODOS_LOS_EDIFICIOS ? SelectedEdificio.ID_EDIFICIO : nulo,
                                                                                     SelectedEdificio.ID_EDIFICIO != TODOS_LOS_EDIFICIOS ? (SelectedSector.ID_SECTOR != TODOS_LOS_SECTORES ? SelectedSector.ID_SECTOR : nulo) : nulo, Pagina,
                                                                                     BusquedaAvanzadaChecked && AnioBuscar.HasValue ? AnioBuscar.Value : 0,
                                                                                     BusquedaAvanzadaChecked && FolioBuscar.HasValue ? FolioBuscar.Value : 0,
                                                                                     BusquedaAvanzadaChecked && !string.IsNullOrEmpty(NombreBuscar) ? NombreBuscar : string.Empty,
                                                                                     BusquedaAvanzadaChecked && !string.IsNullOrEmpty(ApellidoPaternoBuscar) ? ApellidoPaternoBuscar : string.Empty,
                                                                                     BusquedaAvanzadaChecked && !string.IsNullOrEmpty(ApellidoMaternoBuscar) ? ApellidoMaternoBuscar : string.Empty).ToList();

            if (Ingresos.Any())
            {
                Pagina++;
                SeguirCargandoIngresos = true;
                var                lista_ingresos = new List <cInternoGafeteBrazalete>(ListaIngresos);
                byte[]             fi, fc;
                INGRESO_BIOMETRICO bio;
                foreach (var Ingreso in Ingresos)
                {
                    if (Ingreso.INGRESO_BIOMETRICO != null)
                    {
                        bio = Ingreso.INGRESO_BIOMETRICO.Where(w => w.ID_TIPO_BIOMETRICO == (short)enumTipoBiometrico.FOTO_FRENTE_REGISTRO).FirstOrDefault();
                        if (bio != null)
                        {
                            fi = bio.BIOMETRICO;
                        }
                        else
                        {
                            fi = new Imagenes().getImagenPerson();
                        }
                        bio = Ingreso.INGRESO_BIOMETRICO.Where(w => w.ID_TIPO_BIOMETRICO == (short)enumTipoBiometrico.FOTO_FRENTE_SEGUIMIENTO).FirstOrDefault();
                        if (bio != null)
                        {
                            fc = bio.BIOMETRICO;
                        }
                        else
                        {
                            fc = new Imagenes().getImagenPerson();
                        }
                    }
                    else
                    {
                        fi = fc = new Imagenes().getImagenPerson();
                    }

                    var interno = new cInternoGafeteBrazalete()
                    {
                        ID_CENTRO    = Ingreso.ID_CENTRO,
                        ID_ANIO      = Ingreso.ID_ANIO,
                        ID_IMPUTADO  = Ingreso.ID_IMPUTADO,
                        ID_INGRESO   = Ingreso.ID_INGRESO,
                        NOMBRE       = !string.IsNullOrEmpty(Ingreso.IMPUTADO.NOMBRE) ? Ingreso.IMPUTADO.NOMBRE.TrimEnd() : string.Empty,
                        PATERNO      = !string.IsNullOrEmpty(Ingreso.IMPUTADO.PATERNO) ? Ingreso.IMPUTADO.PATERNO.TrimEnd() : string.Empty,
                        MATERNO      = !string.IsNullOrEmpty(Ingreso.IMPUTADO.MATERNO) ? Ingreso.IMPUTADO.MATERNO.TrimEnd() : string.Empty,
                        SELECCIONADO = false,
                        FOTOINGRESO  = fi,
                        FOTOCENTRO   = fc,
                    };
                    if (ListaIngresosSeleccionados.Any())
                    {
                        if (!(ListaIngresosSeleccionados.Count(c =>
                                                               c.ID_CENTRO == interno.ID_CENTRO &&
                                                               c.ID_ANIO == interno.ID_ANIO &&
                                                               c.ID_IMPUTADO == interno.ID_IMPUTADO &&
                                                               c.ID_INGRESO == interno.ID_INGRESO) > 0))
                        {
                            interno.SELECCIONADO = SeleccionarTodosIngresos;
                            lista_ingresos.Add(interno);
                        }
                    }
                    else
                    {
                        interno.SELECCIONADO = SeleccionarTodosIngresos;
                        lista_ingresos.Add(interno);
                    }
                }
                ListaIngresos = lista_ingresos;
                EmptyVisible  = !lista_ingresos.Any();
            }
            else
            {
                SeguirCargandoIngresos = false;
            }
        }
Пример #5
0
        public async void ClickSwitch(object obj)
        {
            switch (obj.ToString())
            {
            case "GenerarReporte":
                if (!ListaIngresosSeleccionados.Any())
                {
                    var mensaje    = System.Windows.Application.Current.Windows[0] as MetroWindow;
                    var mySettings = new MetroDialogSettings()
                    {
                        AffirmativeButtonText = "Cerrar",
                        AnimateShow           = true,
                        AnimateHide           = false
                    };
                    BrazaleteReportViewerVisible = Visibility.Collapsed;
                    GafeteReportViewerVisible    = Visibility.Collapsed;
                    await mensaje.ShowMessageAsync("Validación", "Debe seleccionar al menos un interno para generar el reporte.", MessageDialogStyle.Affirmative, mySettings);

                    BrazaleteReportViewerVisible = BrazaleteSelected ? Visibility.Visible : Visibility.Collapsed;
                    GafeteReportViewerVisible    = GafeteSelected ? Visibility.Visible : Visibility.Collapsed;
                }
                else
                {
                    Reporte.Reset();
                    if (BrazaleteSelected)
                    {
                        BrazaleteReportViewerVisible = Visibility.Collapsed;
                        GenerarReporte(enumTipoReporte.BRAZALETE);
                        BrazaleteReportViewerVisible = Visibility.Visible;
                    }
                    else
                    {
                        GafeteReportViewerVisible = Visibility.Collapsed;
                        GenerarReporte(enumTipoReporte.GAFETE);
                        GafeteReportViewerVisible = Visibility.Visible;
                    }
                }
                break;

            case "ObtenerIngresos":
                try
                {
                    System.Windows.Application.Current.Dispatcher.Invoke((System.Action)(delegate
                    {
                        BrazaleteReportViewerVisible = Visibility.Collapsed;
                        GafeteReportViewerVisible    = Visibility.Collapsed;
                    }));
                    await StaticSourcesViewModel.CargarDatosMetodoAsync(() =>
                    {
                        Pagina        = 1;
                        ListaIngresos = new List <cInternoGafeteBrazalete>();
                        EmptyVisible  = true;
                        ObtenerIngresos();
                    });

                    System.Windows.Application.Current.Dispatcher.Invoke((System.Action)(delegate
                    {
                        BrazaleteReportViewerVisible = BrazaleteSelected ? Visibility.Visible : Visibility.Collapsed;
                        GafeteReportViewerVisible    = GafeteSelected ? Visibility.Visible : Visibility.Collapsed;
                    }));
                }
                catch (Exception ex)
                {
                    throw new ApplicationException(ex.Message);
                }
                break;

            case "Permitir":
                if (!SelectedIngreso.SELECCIONADO)
                {
                    SeleccionarTodosIngresos = false;
                }
                else
                {
                    SeleccionarTodosIngresos = !ListaIngresos.Where(w => !w.SELECCIONADO).Any();
                }
                break;

            case "SeleccionarTodosIngresos":
                if (ListaIngresos.Any())
                {
                    var lista_ingresos = new List <cInternoGafeteBrazalete>(ListaIngresos);
                    foreach (var Ingreso in lista_ingresos)
                    {
                        Ingreso.SELECCIONADO = SeleccionarTodosIngresos;
                    }
                    ListaIngresos = lista_ingresos;
                }
                else
                {
                    SeleccionarTodosIngresos = false;
                }
                break;

            case "PermitirSeleccionado":
                if (!SelectedIngresoSeleccionado.SELECCIONADO)
                {
                    SeleccionarTodosIngresosSeleccionados = false;
                }
                else
                {
                    SeleccionarTodosIngresosSeleccionados = !ListaIngresosSeleccionados.Where(w => !w.SELECCIONADO).Any();
                }
                break;

            case "SeleccionarTodosIngresosSeleccionados":
                if (ListaIngresosSeleccionados.Any())
                {
                    var lista_ingresos_seleccionados = new List <cInternoGafeteBrazalete>(ListaIngresosSeleccionados);
                    foreach (var Ingreso in lista_ingresos_seleccionados)
                    {
                        Ingreso.SELECCIONADO = SeleccionarTodosIngresosSeleccionados;
                    }
                    ListaIngresosSeleccionados = lista_ingresos_seleccionados;
                }
                else
                {
                    SeleccionarTodosIngresosSeleccionados = false;
                }
                break;

            case "AgregarInternos":
                if (ListaIngresos.Any())
                {
                    if (ListaIngresos.Where(w => w.SELECCIONADO).Any())
                    {
                        var lista_ingresos = new List <cInternoGafeteBrazalete>(ListaIngresos);
                        var lista_ingresos_seleccionados = new List <cInternoGafeteBrazalete>(
                            ListaIngresos.Where(w => w.SELECCIONADO).
                            OrderByDescending(oD => oD.ID_ANIO).
                            ThenByDescending(tD => tD.ID_IMPUTADO).
                            ToList());
                        foreach (var ingreso_seleccionado in lista_ingresos_seleccionados)
                        {
                            ingreso_seleccionado.SELECCIONADO = false;
                            lista_ingresos.Remove(ingreso_seleccionado);
                        }
                        ListaIngresos             = lista_ingresos.Any() ? lista_ingresos.OrderByDescending(oD => oD.ID_ANIO).ThenByDescending(tD => tD.ID_IMPUTADO).ToList() : new List <cInternoGafeteBrazalete>();
                        EmptyVisible              = !ListaIngresos.Any();
                        EmptySeleccionadosVisible = false;
                        ListaIngresosSeleccionados.AddRange(lista_ingresos_seleccionados);
                        ListaIngresosSeleccionados = ListaIngresosSeleccionados.OrderByDescending(oD => oD.ID_ANIO).ThenByDescending(tD => tD.ID_IMPUTADO).ToList();
                        SeleccionarTodosIngresos   = false;
                    }
                    else
                    {
                        var mensaje    = System.Windows.Application.Current.Windows[0] as MetroWindow;
                        var mySettings = new MetroDialogSettings()
                        {
                            AffirmativeButtonText = "Cerrar",
                            AnimateShow           = true,
                            AnimateHide           = false
                        };
                        BrazaleteReportViewerVisible = Visibility.Collapsed;
                        GafeteReportViewerVisible    = Visibility.Collapsed;
                        await mensaje.ShowMessageAsync("Validación", "Debe seleccionar al menos un interno.", MessageDialogStyle.Affirmative, mySettings);

                        BrazaleteReportViewerVisible = BrazaleteSelected ? Visibility.Visible : Visibility.Collapsed;
                        GafeteReportViewerVisible    = GafeteSelected ? Visibility.Visible : Visibility.Collapsed;
                    }
                }
                else
                {
                    var mensaje    = System.Windows.Application.Current.Windows[0] as MetroWindow;
                    var mySettings = new MetroDialogSettings()
                    {
                        AffirmativeButtonText = "Cerrar",
                        AnimateShow           = true,
                        AnimateHide           = false
                    };
                    BrazaleteReportViewerVisible = Visibility.Collapsed;
                    GafeteReportViewerVisible    = Visibility.Collapsed;
                    await mensaje.ShowMessageAsync("Validación", "Lista de internos vacía. Realice una búsqueda e intente de nuevo.", MessageDialogStyle.Affirmative, mySettings);

                    BrazaleteReportViewerVisible = BrazaleteSelected ? Visibility.Visible : Visibility.Collapsed;
                    GafeteReportViewerVisible    = GafeteSelected ? Visibility.Visible : Visibility.Collapsed;
                }
                break;

            case "RemoverInternos":
                if (ListaIngresosSeleccionados.Any())
                {
                    if (ListaIngresosSeleccionados.Where(w => w.SELECCIONADO).Any())
                    {
                        var lista_ingresos = new List <cInternoGafeteBrazalete>(ListaIngresosSeleccionados);
                        var lista_ingresos_seleccionados = new List <cInternoGafeteBrazalete>(
                            ListaIngresosSeleccionados.Where(w => w.SELECCIONADO).
                            OrderByDescending(oD => oD.ID_ANIO).
                            ThenByDescending(tD => tD.ID_IMPUTADO).
                            ToList());
                        foreach (var ingreso_seleccionado in lista_ingresos_seleccionados)
                        {
                            ingreso_seleccionado.SELECCIONADO = false;
                            lista_ingresos.Remove(ingreso_seleccionado);
                        }
                        ListaIngresosSeleccionados = lista_ingresos.Any() ? lista_ingresos.OrderByDescending(oD => oD.ID_ANIO).ThenByDescending(tD => tD.ID_IMPUTADO).ToList() : new List <cInternoGafeteBrazalete>();
                        EmptySeleccionadosVisible  = !ListaIngresosSeleccionados.Any();
                        EmptyVisible = false;
                        ListaIngresos.AddRange(lista_ingresos_seleccionados);
                        ListaIngresos = ListaIngresos.OrderByDescending(oD => oD.ID_ANIO).ThenByDescending(tD => tD.ID_IMPUTADO).ToList();
                        SeleccionarTodosIngresosSeleccionados = false;
                    }
                    else
                    {
                        var mensaje    = System.Windows.Application.Current.Windows[0] as MetroWindow;
                        var mySettings = new MetroDialogSettings()
                        {
                            AffirmativeButtonText = "Cerrar",
                            AnimateShow           = true,
                            AnimateHide           = false
                        };
                        BrazaleteReportViewerVisible = Visibility.Collapsed;
                        GafeteReportViewerVisible    = Visibility.Collapsed;
                        await mensaje.ShowMessageAsync("Validación", "Debe seleccionar al menos un interno.", MessageDialogStyle.Affirmative, mySettings);

                        BrazaleteReportViewerVisible = BrazaleteSelected ? Visibility.Visible : Visibility.Collapsed;
                        GafeteReportViewerVisible    = GafeteSelected ? Visibility.Visible : Visibility.Collapsed;
                    }
                }
                else
                {
                    var mensaje    = System.Windows.Application.Current.Windows[0] as MetroWindow;
                    var mySettings = new MetroDialogSettings()
                    {
                        AffirmativeButtonText = "Cerrar",
                        AnimateShow           = true,
                        AnimateHide           = false
                    };
                    BrazaleteReportViewerVisible = Visibility.Collapsed;
                    GafeteReportViewerVisible    = Visibility.Collapsed;
                    await mensaje.ShowMessageAsync("Validación", "Lista de internos seleccionados vacía.", MessageDialogStyle.Affirmative, mySettings);

                    BrazaleteReportViewerVisible = BrazaleteSelected ? Visibility.Visible : Visibility.Collapsed;
                    GafeteReportViewerVisible    = GafeteSelected ? Visibility.Visible : Visibility.Collapsed;
                }
                break;
            }
        }