async void OnLoad(ControlSancionesView obj)
        {
            try
            {
                ListIncidente = await StaticSourcesViewModel.CargarDatosAsync <ObservableCollection <INCIDENTE_TIPO> >(() => new ObservableCollection <INCIDENTE_TIPO>(new cIncidenteTipo().GetData().ToList()));

                ListIncidente.Insert(0, new INCIDENTE_TIPO()
                {
                    ID_INCIDENTE_TIPO = -1, DESCR = "SELECIONE"
                });

                ListTipoSanciones = await StaticSourcesViewModel.CargarDatosAsync <ObservableCollection <SANCION_TIPO> >(() => new ObservableCollection <SANCION_TIPO>(new cSancionTipo().GetData().ToList()));

                ListTipoSanciones.Insert(0, new SANCION_TIPO()
                {
                    ID_SANCION = -1, DESCR = "SELECCIONE"
                });

                CargarDatos();
            }
            catch (Exception ex)
            {
                StaticSourcesViewModel.ShowMessageError("Algo pasó...", "Ocurrió un error al cargar control sanciones", ex);
            }
        }
        private async void clickSwitch(object obj)
        {
            try
            {
                switch (obj.ToString())
                {
                case "guardar_menu":
                    break;

                case "buscar_menu":
                    break;

                case "limpiar_menu":
                    //CargarDatos();
                    //ListSanciones = null;
                    //ImagenImputado = null;
                    //FechaRegistro = null;
                    //TextMotivo = null;
                    //ListIncidente = await StaticSourcesViewModel.CargarDatosAsync<ObservableCollection<INCIDENTE_TIPO>>(() => new ObservableCollection<INCIDENTE_TIPO>(new cIncidenteTipo().GetData().ToList()));
                    StaticSourcesViewModel.SourceChanged = false;
                    ((System.Windows.Controls.ContentControl)PopUpsViewModels.MainWindow.FindName("contentControl")).Content     = new ControlSancionesView();
                    ((System.Windows.Controls.ContentControl)PopUpsViewModels.MainWindow.FindName("contentControl")).DataContext = new ControlPenales.ControlSancionesViewModel();
                    break;

                case "reporte_menu":
                    if (!PImprimir)
                    {
                        (new Dialogos()).ConfirmacionDialogo("Validación", "No cuenta con suficientes privilegios para realizar esta acción.");
                        break;
                    }
                    if (SelectIncidentesCumplimentar == null)
                    {
                        new Dialogos().ConfirmacionDialogo("Validación", "Favor de seleccionar una sanción a cumplimentar");
                        return;
                    }
                    EsActa = EsCitatorioInterno = EsParteInformativo = false;
                    PopUpsViewModels.ShowPopUp(this, PopUpsViewModels.TipoPopUp.SELECCIONAR_REPORTE_SANCION);

                    //ImprimirReporte();
                    break;

                case "ficha_menu":
                    break;

                case "ayuda_menu":
                    break;

                case "salir_menu":
                    PrincipalViewModel.SalirMenu();
                    break;

                case "sancion_autorizar":

                    if (!PEditar)
                    {
                        (new Dialogos()).ConfirmacionDialogo("Validación", "No cuenta con suficientes privilegios para realizar esta acción.");
                        break;
                    }
                    if (TabIndex == 0)
                    {
                        if (SelectIncidentes == null)
                        {
                            (new Dialogos()).ConfirmacionDialogo("Validación", "Favor de seleccionar un interno.");
                            break;
                        }
                    }
                    else if (TabIndex == 1)
                    {
                        if (SelectIncidentesCumplimentar == null)
                        {
                            (new Dialogos()).ConfirmacionDialogo("Validación", "Favor de seleccionar un interno.");
                            break;
                        }
                    }

                    #region Comentado
                    //new cIncidente().Actualizar(new INCIDENTE
                    //{
                    //    AUTORIZACION_FEC = Fechas.GetFechaDateServer,
                    //    ESTATUS = "A",
                    //    ID_ANIO = SelectIncidentes.Id_Anio,
                    //    ID_CENTRO = SelectIncidentes.Id_Centro,
                    //    ID_IMPUTADO = SelectIncidentes.Id_Imputado,
                    //    ID_INCIDENTE = SelectIncidentes.Id_Incidente,
                    //    ID_INCIDENTE_TIPO = SelectIncidentes.Id_Incidente_Tipo,
                    //    ID_INGRESO = SelectIncidentes.Id_Ingreso,
                    //    MOTIVO = SelectIncidentes.Motivo,
                    //    REGISTRO_FEC = SelectIncidentes.Registro_Fecha
                    //});
                    #endregion
                    CambiarEstatus("A", Fechas.GetFechaDateServer);
                    CargarDatos();

                    break;

                case "sancion_cancelar":
                    if (!PEditar)
                    {
                        (new Dialogos()).ConfirmacionDialogo("Validación", "No cuenta con suficientes privilegios para realizar esta acción.");
                        return;
                    }
                    if (TabIndex == 0)
                    {
                        if (SelectIncidentes == null)
                        {
                            (new Dialogos()).ConfirmacionDialogo("Validación", "Favor de seleccionar un interno.");
                            break;
                        }
                    }
                    else if (TabIndex == 1)
                    {
                        if (SelectIncidentesCumplimentar == null)
                        {
                            (new Dialogos()).ConfirmacionDialogo("Validación", "Favor de seleccionar un interno.");
                            break;
                        }
                    }
                    CambiarEstatus("C");
                    CargarDatos();
                    break;

                case "sancion_pendiente":

                    if (!PEditar)
                    {
                        (new Dialogos()).ConfirmacionDialogo("Validación", "No cuenta con suficientes privilegios para realizar esta acción.");
                        return;
                    }
                    if (TabIndex == 0)
                    {
                        if (SelectIncidentes == null)
                        {
                            (new Dialogos()).ConfirmacionDialogo("Validación", "Favor de seleccionar un interno.");
                            break;
                        }
                    }
                    else if (TabIndex == 1)
                    {
                        if (SelectIncidentesCumplimentar == null)
                        {
                            (new Dialogos()).ConfirmacionDialogo("Validación", "Favor de seleccionar un interno.");
                            break;
                        }
                    }
                    CambiarEstatus("P");
                    #region comentado

//                        if (SelectIncidentes != null)
//                            new cIncidente().ActualizarEstatus(new INCIDENTE() {
//                            ID_CENTRO = SelectIncidentes.Id_Centro,
//                            ID_ANIO = SelectIncidentes.Id_Anio,
//                            ID_IMPUTADO = SelectIncidentes.Id_Imputado,
//                            ID_INGRESO = SelectIncidentes.Id_Ingreso,
//                            ID_INCIDENTE = SelectIncidentes.Id_Incidente,
//                            ESTATUS = "P"
//                            });
//                            #region comentado
//                           // new cIncidente().Actualizar(new INCIDENTE
//                           //{
//                           //    AUTORIZACION_FEC = null,
//                           //    ESTATUS = "P",
//                           //    ID_ANIO = SelectIncidentes.Id_Anio,
//                           //    ID_CENTRO = SelectIncidentes.Id_Centro,
//                           //    ID_IMPUTADO = SelectIncidentes.Id_Imputado,
//                           //    ID_INCIDENTE = SelectIncidentes.Id_Incidente,
//                           //    ID_INCIDENTE_TIPO = SelectIncidentes.Id_Incidente_Tipo,
//                           //    ID_INGRESO = SelectIncidentes.Id_Ingreso,
//                           //    MOTIVO = SelectIncidentes.Motivo,
//                           //    REGISTRO_FEC = SelectIncidentes.Registro_Fecha
//                           //});
//#endregion

//                        if (SelectIncidentesCumplimentar != null)
//                            new cIncidente().ActualizarEstatus(new INCIDENTE() {
//                            ID_CENTRO = SelectIncidentesCumplimentar.Id_Centro,
//                            ID_ANIO = SelectIncidentesCumplimentar.Id_Anio,
//                            ID_IMPUTADO = SelectIncidentesCumplimentar.Id_Imputado,
//                            ID_INGRESO = SelectIncidentesCumplimentar.Id_Ingreso,
//                            ID_INCIDENTE = SelectIncidentesCumplimentar.Id_Incidente,
//                            ESTATUS = "P"
//                            });
//                            #region comentado
//                            //new cIncidente().Actualizar(new INCIDENTE
//                            //{
//                            //    AUTORIZACION_FEC = null,
//                            //    ESTATUS = "P",
//                            //    ID_ANIO = SelectIncidentesCumplimentar.Id_Anio,
//                            //    ID_CENTRO = SelectIncidentesCumplimentar.Id_Centro,
//                            //    ID_IMPUTADO = SelectIncidentesCumplimentar.Id_Imputado,
//                            //    ID_INCIDENTE = SelectIncidentesCumplimentar.Id_Incidente,
//                            //    ID_INCIDENTE_TIPO = SelectIncidentesCumplimentar.Id_Incidente_Tipo,
//                            //    ID_INGRESO = SelectIncidentesCumplimentar.Id_Ingreso,
//                            //    MOTIVO = SelectIncidentesCumplimentar.Motivo,
//                            //    REGISTRO_FEC = SelectIncidentesCumplimentar.Registro_Fecha
//                        //});
                    //#endregion
                    #endregion
                    CargarDatos();
                    break;

                case "sancion_calendarizar":
                    break;

                case "insertar_sancion":
                    if (SelectIncidentes == null)
                    {
                        new Dialogos().ConfirmacionDialogo("Validación", "Favor de seleccionar un incidente.");
                        break;
                    }

                    if (!PInsertar)
                    {
                        (new Dialogos()).ConfirmacionDialogo("Validación", "No cuenta con suficientes privilegios para realizar esta acción.");
                        return;
                    }

                    #region Limpiar
                    IdSancionTipo = -1;
                    FechaInicio   = FechaFin = null;
                    HoraInicio    = "00";
                    MinutoInicio  = "00";

                    HoraFin   = "23";
                    MinutoFin = "00";
                    #endregion

                    SetValidacionesSancion();
                    SelectSancion = ListTipoSanciones.Where(w => w.ID_SANCION == -1).FirstOrDefault();
                    //SelectedIncidente = -1;
                    PopUpsViewModels.ShowPopUp(this, PopUpsViewModels.TipoPopUp.AGREGAR_SANCION);
                    //ListTipoSanciones = ListTipoSanciones ?? await StaticSourcesViewModel.CargarDatosAsync<ObservableCollection<SANCION_TIPO>>(() => new ObservableCollection<SANCION_TIPO>(new cSancionTipo().GetData().ToList()));
                    Agregar       = true;
                    FechaLowerVal = Fechas.GetFechaDateServer;
                    FechaUpperVal = Fechas.GetFechaDateServer.AddDays(2);
                    HoraLowerVal  = new DateTime(0001, 01, 01, 10, 0, 0);
                    HoraUpperVal  = new DateTime(0001, 01, 01, 15, 0, 0);
                    break;

                case "editar_sancion":
                    if (SelectSanciones == null)
                    {
                        break;
                    }

                    if (!PEditar)
                    {
                        (new Dialogos()).ConfirmacionDialogo("Validación", "No cuenta con suficientes privilegios para realizar esta acción.");
                        return;
                    }

                    SetValidacionesSancion();
                    PopUpsViewModels.ShowPopUp(this, PopUpsViewModels.TipoPopUp.AGREGAR_SANCION);
                    //ListTipoSanciones = ListTipoSanciones ?? await StaticSourcesViewModel.CargarDatosAsync<ObservableCollection<SANCION_TIPO>>(() => new ObservableCollection<SANCION_TIPO>(new cSancionTipo().GetData().ToList()));
                    Agregar = false;
                    #region Limpiar
                    IdSancionTipo = -1;
                    FechaInicio   = FechaFin = null;
                    HoraInicio    = "00";
                    MinutoInicio  = "00";
                    HoraFin       = "23";
                    MinutoFin     = "59";
                    #endregion

                    IdSancionTipo = SelectSanciones.Id_Sancion;
                    FechaInicio   = SelectSanciones.IniciaFecha;
                    FechaFin      = SelectSanciones.TerminaFecha;
                    if (FechaInicio.Value.Hour > 9)
                    {
                        HoraInicio = FechaInicio.Value.Hour.ToString();
                    }
                    else
                    {
                        HoraInicio = "0" + FechaInicio.Value.Hour;
                    }

                    if (FechaInicio.Value.Minute > 9)
                    {
                        MinutoInicio = FechaInicio.Value.Minute.ToString();
                    }
                    else
                    {
                        MinutoInicio = "0" + FechaInicio.Value.Minute;
                    }


                    if (FechaFin.Value.Hour > 9)
                    {
                        HoraFin = FechaFin.Value.Hour.ToString();
                    }
                    else
                    {
                        HoraFin = "0" + FechaFin.Value.Hour;
                    }

                    if (FechaFin.Value.Minute > 9)
                    {
                        MinutoFin = FechaFin.Value.Minute.ToString();
                    }
                    else
                    {
                        MinutoFin = "0" + FechaFin.Value.Minute;
                    }

                    //FechaLowerVal = SelectSanciones.IniciaFecha.Value;
                    //FechaUpperVal = SelectSanciones.TerminaFecha.Value;
                    //HoraLowerVal = SelectSanciones.IniciaFecha.Value;
                    //HoraUpperVal = SelectSanciones.TerminaFecha.Value;
                    break;

                case "borrar_sancion":
                    break;

                case "guardar_sancionpopup":

                    if (this.HasErrors)
                    {
                        new Dialogos().ConfirmacionDialogo("Validación", "Favor de capturar los datos requeridos");
                        break;
                    }
                    //Validacion fechas
                    if (FechaInicio.Value.Date > FechaFin.Value.Date)
                    {
                        new Dialogos().ConfirmacionDialogo("Validación", "La fecha de inicio debe ser menor o igual a la fecha final");
                        break;
                    }
                    //Validacion horas
                    int inicio = int.Parse(HoraInicio + MinutoInicio);
                    int fin    = int.Parse(HoraFin + MinutoFin);
                    if (inicio > fin)
                    {
                        new Dialogos().ConfirmacionDialogo("Validación", "La hora de inicio debe ser menor o igual a la hora final");
                        break;
                    }

                    var fi = FechaInicio.Value.Date;
                    fi = fi.AddHours(int.Parse(HoraInicio));
                    fi = fi.AddMinutes(int.Parse(MinutoInicio));

                    var ff = FechaFin.Value.Date;
                    ff = ff.AddHours(int.Parse(HoraFin));
                    ff = ff.AddMinutes(int.Parse(MinutoFin));
                    if (Agregar)
                    {
                        new cSancion().Insert(new SANCION
                        {
                            ID_ANIO      = SelectIncidentes.Id_Anio,
                            ID_CENTRO    = SelectIncidentes.Id_Centro,
                            ID_IMPUTADO  = SelectIncidentes.Id_Imputado,
                            ID_INCIDENTE = SelectIncidentes.Id_Incidente,
                            ID_INGRESO   = SelectIncidentes.Id_Ingreso,
                            ID_SANCION   = SelectSancion.ID_SANCION,
                            INICIA_FEC   = fi,  //new DateTime(FechaLowerVal.Year, FechaLowerVal.Month, FechaLowerVal.Day, HoraLowerVal.Hour, HoraLowerVal.Minute, HoraLowerVal.Second),
                            TERMINA_FEC  = ff,  //new DateTime(FechaUpperVal.Year, FechaUpperVal.Month, FechaUpperVal.Day, HoraUpperVal.Hour, HoraUpperVal.Minute, HoraUpperVal.Second)
                        });

                        CargarSancionesImputado(SelectIncidentes.Id_Centro, SelectIncidentes.Id_Anio, SelectIncidentes.Id_Imputado, SelectIncidentes.Id_Ingreso, SelectIncidentes.Id_Incidente);
                    }
                    else
                    {
                        new cSancion().Actualizar(new SANCION
                        {
                            ID_ANIO      = SelectSanciones.Id_Anio,
                            ID_CENTRO    = SelectSanciones.Id_Centro,
                            ID_IMPUTADO  = SelectSanciones.Id_Imputado,
                            ID_INCIDENTE = SelectSanciones.Id_Incidente,
                            ID_INGRESO   = SelectSanciones.Id_Ingreso,
                            ID_SANCION   = SelectSanciones.Id_Sancion,
                            INICIA_FEC   = fi,  //new DateTime(FechaLowerVal.Year, FechaLowerVal.Month, FechaLowerVal.Day, HoraLowerVal.Hour, HoraLowerVal.Minute, HoraLowerVal.Second),
                            TERMINA_FEC  = ff,  //new DateTime(FechaUpperVal.Year, FechaUpperVal.Month, FechaUpperVal.Day, HoraUpperVal.Hour, HoraUpperVal.Minute, HoraUpperVal.Second)
                        });

                        CargarSancionesImputado(SelectSanciones.Id_Centro, SelectSanciones.Id_Anio, SelectSanciones.Id_Imputado, SelectSanciones.Id_Ingreso, SelectSanciones.Id_Incidente);
                    }

                    PopUpsViewModels.ClosePopUp(PopUpsViewModels.TipoPopUp.AGREGAR_SANCION);
                    this.ClearRules();
                    CargarDatos();
                    break;

                case "cancelar_sancionpopup":
                    PopUpsViewModels.ClosePopUp(PopUpsViewModels.TipoPopUp.AGREGAR_SANCION);
                    this.ClearRules();
                    break;

                case "VerTodosCumplimentar":
                    FechaSancionesCumplidas = null;
                    break;

                case "seleccionar_reporte":
                    if (EsActa || EsCitatorioInterno || EsParteInformativo)
                    {
                        PopUpsViewModels.ClosePopUp(PopUpsViewModels.TipoPopUp.SELECCIONAR_REPORTE_SANCION);
                        if (EsActa)
                        {
                            ImprimirActa();
                        }
                        else
                        if (EsCitatorioInterno)
                        {
                            ImprimirCitatorioInterno();
                        }
                        else
                        if (EsParteInformativo)
                        {
                        }
                    }
                    else
                    {
                        new Dialogos().ConfirmacionDialogo("Validación", "Favor de seleccionar el formato a imprimir");
                    }

                    break;

                case "cancelar_reporte":
                    EsActa = EsCitatorioInterno = EsParteInformativo = false;
                    PopUpsViewModels.ClosePopUp(PopUpsViewModels.TipoPopUp.SELECCIONAR_REPORTE_SANCION);
                    break;

                default:
                    break;
                }
            }
            catch (Exception ex)
            {
                StaticSourcesViewModel.ShowMessageError("Algo pasó...", "Ocurrió un error en el flujo del modulo", ex);
            }
        }