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;
            }
        }
Example #2
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;
            }
        }