private bool Eliminar()
 {
     try
     {
         if (SelectedItem != null)
         {
             if (objCentro.Eliminar(SelectedItem.ID_CENTRO))
             {
                 SeleccionIndice = -1;
                 Nombre          = string.Empty;
                 Calle           = string.Empty;
                 Colonia         = string.Empty;
                 No_exterior     = string.Empty;
                 No_interior     = string.Empty;
                 Codigo_postal   = string.Empty;
                 Telefono        = string.Empty;
                 Fax             = string.Empty;
                 Director        = string.Empty;
                 SelectEntidad   = ListEntidad.Where(w => w.ID_ENTIDAD == -1).FirstOrDefault();
                 SelectMunicipio = ListMunicipio.Where(w => w.ID_MUNICIPIO == -1).FirstOrDefault();
                 GetCentros();
                 return(true);
             }
         }
         return(false);
     }
     catch (Exception ex)
     {
         StaticSourcesViewModel.ShowMessageError("Algo pasó...", "Ocurrió un error al eliminar.", ex);
         return(false);
     }
 }
        private async void ClickSwitch(Object obj)
        {
            switch (obj.ToString())
            {
            case "buscar":
                this.GetTipoRelacion();
                break;

            case "menu_editar":
                if (SelectedItem != null)
                {
                    HeaderAgregar = "Editar Juzgados";
                    #region visiblePantalla
                    EditarVisible       = true;
                    NuevoVisible        = false;
                    GuardarMenuEnabled  = true;
                    AgregarMenuEnabled  = false;
                    EliminarMenuEnabled = false;
                    EditarMenuEnabled   = false;
                    CancelarMenuEnabled = true;
                    AyudaMenuEnabled    = true;
                    SalirMenuEnabled    = true;
                    ExportarMenuEnabled = false;
                    AgregarVisible      = true;
                    #endregion
                    bandera_editar = true;
                    FocusText      = true;
                    /*****************************************/
                    Clave           = SelectedItem.ID_JUZGADO;
                    Descripcion     = SelectedItem.DESCR == null ? SelectedItem.DESCR : SelectedItem.DESCR.TrimEnd();
                    Domicilio       = SelectedItem.DOMICILIO == null ? SelectedItem.DOMICILIO : SelectedItem.DOMICILIO.TrimEnd();
                    Pais            = ListPais.Where(w => w.ID_PAIS_NAC == SelectedItem.ID_PAIS).FirstOrDefault();
                    Entidad         = ListEntidad.Where(w => w.ID_ENTIDAD == SelectedItem.ID_ENTIDAD).ToList().FirstOrDefault() ?? new ENTIDAD();
                    SelectMunicipio = ListMunicipio.Where(w => w.ID_MUNICIPIO == SelectedItem.ID_MUNICIPIO).ToList().FirstOrDefault() ?? new MUNICIPIO();
                    SelectedEstatus = SelectedItem.ESTATUS == null?Lista_Estatus.LISTA_ESTATUS.Where(w => w.CLAVE == "N").SingleOrDefault() : Lista_Estatus.LISTA_ESTATUS.Where(w => w.CLAVE == SelectedItem.ESTATUS).SingleOrDefault();

                    SelectedFuero     = ListaFuero.Where(w => w.ID_FUERO == SelectedItem.ID_FUERO).FirstOrDefault();
                    SelectJuzgadoTipo = ListaJuzgadoTipo.Where(w => w.ID_TIPO_JUZGADO == SelectedItem.ID_TIPO_JUZGADO).FirstOrDefault();
                    Tribunal          = SelectedItem.TRIBUNAL == "S" ? true : false;
                    //  setValidationRules();
                    //PopularEstatusCombo();
                    /*****************************************/
                }
                else
                {
                    bandera_editar = false;
                    var met = Application.Current.Windows[0] as MetroWindow;
                    await met.ShowMessageAsync("Validación", "Debe seleccionar una opción.");
                }
                break;

            case "menu_agregar":
                HeaderAgregar = "Agregar Nuevo Juzgado";
                #region visiblePantalla
                EditarVisible       = false;
                NuevoVisible        = true;
                GuardarMenuEnabled  = true;
                AgregarMenuEnabled  = false;
                EliminarMenuEnabled = false;
                EditarMenuEnabled   = false;
                CancelarMenuEnabled = true;
                AyudaMenuEnabled    = true;
                SalirMenuEnabled    = true;
                ExportarMenuEnabled = false;
                AgregarVisible      = true;
                #endregion
                bandera_editar = false;
                FocusText      = true;
                /********************************/
                SeleccionIndice   = -1;
                Clave             = 0;
                Descripcion       = string.Empty;
                Domicilio         = string.Empty;
                SelectMunicipio   = null;
                SelectedItem      = null;
                SelectedEstatus   = null;
                SelectedEstatus   = Lista_Estatus.LISTA_ESTATUS.Where(w => w.CLAVE == "S").FirstOrDefault();
                SelectMunicipio   = null;
                SelectedFuero     = null;
                SelectJuzgadoTipo = null;
                Tribunal          = false;
                //LimpiarTipoVisita();
                /********************************/
                break;

            case "menu_guardar":
                if (!string.IsNullOrEmpty(Descripcion))
                {
                    #region visiblePantalla
                    EditarVisible       = false;
                    NuevoVisible        = false;
                    GuardarMenuEnabled  = false;
                    AgregarMenuEnabled  = true;
                    EliminarMenuEnabled = false;
                    EditarMenuEnabled   = false;
                    CancelarMenuEnabled = false;
                    AyudaMenuEnabled    = true;
                    SalirMenuEnabled    = true;
                    ExportarMenuEnabled = true;
                    AgregarVisible      = false;
                    #endregion
                    /**********************************/
                    //   this.Guardar();
                    GuardarAgencia();
                    /**********************************/
                }
                else
                {
                    FocusText = true;
                }
                break;

            case "menu_cancelar":
                #region visiblePantalla
                NuevoVisible        = false;
                GuardarMenuEnabled  = false;
                AgregarMenuEnabled  = true;
                EliminarMenuEnabled = false;
                EditarMenuEnabled   = false;
                CancelarMenuEnabled = false;
                AyudaMenuEnabled    = true;
                SalirMenuEnabled    = true;
                ExportarMenuEnabled = true;
                AgregarVisible      = false;
                #endregion
                /****************************************/
                SeleccionIndice = -1;
                Clave           = 0;
                Descripcion     = string.Empty;
                Busqueda        = string.Empty;
                this.GetTipoRelacion();
                /****************************************/
                break;

            case "menu_eliminar":
                var metro = Application.Current.Windows[0] as MetroWindow;
                if (SelectedItem != null)
                {
                    var mySettings = new MetroDialogSettings()
                    {
                        AffirmativeButtonText = "Aceptar",
                        NegativeButtonText    = "Cancelar",
                        AnimateShow           = true,
                        AnimateHide           = false
                    };
                    var result = await metro.ShowMessageAsync("Borrar", "¿Está seguro que desea borrar esto? [ " + SelectedItem.DESCR + " ]", MessageDialogStyle.AffirmativeAndNegative, mySettings);

                    if (result == MessageDialogResult.Affirmative)
                    {
                        BaseMetroDialog dialog;
                        if (this.Eliminar())
                        {
                            dialog = (BaseMetroDialog)metro.Resources["ConfirmacionDialog"];
                        }
                        else
                        {
                            dialog = (BaseMetroDialog)metro.Resources["ErrorDialog"];
                        }
                        await metro.ShowMetroDialogAsync(dialog);

                        await TaskEx.Delay(1500);

                        await metro.HideMetroDialogAsync(dialog);
                    }
                }
                else
                {
                    await metro.ShowMessageAsync("Validación", "Debe seleccionar una opción");
                }
                SeleccionIndice = -1;
                break;

            case "menu_exportar":
                SeleccionIndice = -1;
                Cambio          = string.Empty;
                break;

            case "menu_ayuda":
                SeleccionIndice = -1;
                Cambio          = string.Empty;
                break;

            case "menu_salir":
                SeleccionIndice = -1;
                Cambio          = string.Empty;
                PrincipalViewModel.SalirMenu();
                break;
            }
        }
        private async void ClickSwitch(Object obj)
        {
            switch (obj.ToString())
            {
            case "buscar":
                this.GetCentros();
                break;

            case "menu_editar":
                if (SelectedItem != null)
                {
                    HeaderAgregar       = "Editar Centro";
                    EditarVisible       = true;
                    NuevoVisible        = false;
                    GuardarMenuEnabled  = true;
                    AgregarMenuEnabled  = false;
                    EliminarMenuEnabled = false;
                    EditarMenuEnabled   = false;
                    CancelarMenuEnabled = true;
                    AyudaMenuEnabled    = true;
                    SalirMenuEnabled    = true;
                    ExportarMenuEnabled = false;
                    AgregarVisible      = true;
                    bandera_editar      = true;
                    FocusText           = true;
                    #region Obtener Valores
                    Nombre        = string.IsNullOrEmpty(SelectedItem.DESCR) ? string.Empty : SelectedItem.DESCR.TrimEnd();
                    Calle         = string.IsNullOrEmpty(SelectedItem.CALLE) ? string.Empty : SelectedItem.CALLE.TrimEnd();
                    Colonia       = string.IsNullOrEmpty(SelectedItem.COLONIA) ? string.Empty : SelectedItem.CALLE.TrimEnd();
                    No_exterior   = string.IsNullOrEmpty(SelectedItem.NUM_EXT.ToString()) ? string.Empty : SelectedItem.NUM_EXT.ToString();
                    No_interior   = string.IsNullOrEmpty(SelectedItem.NUM_INT) ? string.Empty : SelectedItem.NUM_INT.TrimEnd();
                    Codigo_postal = string.IsNullOrEmpty(SelectedItem.CP.ToString()) ? string.Empty : SelectedItem.CP.ToString();
                    Telefono      = string.IsNullOrEmpty(SelectedItem.TELEFONO.ToString()) ? string.Empty : SelectedItem.TELEFONO.ToString();
                    Fax           = string.IsNullOrEmpty(SelectedItem.FAX.ToString()) ? string.Empty : SelectedItem.FAX.ToString();
                    Director      = string.IsNullOrEmpty(SelectedItem.DIRECTOR) ? string.Empty : SelectedItem.DIRECTOR.TrimEnd();

                    SelectEntidad   = ListEntidad.Where(w => w.ID_ENTIDAD == SelectedItem.ID_ENTIDAD).FirstOrDefault();
                    SelectMunicipio = ListMunicipio.Where(w => w.ID_MUNICIPIO == SelectedItem.ID_MUNICIPIO).FirstOrDefault();
                    SelectedEstatus = Lista_Estatus.LISTA_ESTATUS.Where(w => w.CLAVE == SelectedItem.ESTATUS).SingleOrDefault();
                    #endregion Obtener Valores
                }
                else
                {
                    bandera_editar = false;
                    var met = Application.Current.Windows[0] as MetroWindow;
                    await met.ShowMessageAsync("Validación", "Debe seleccionar una opción.");
                }
                break;

            case "menu_agregar":
                HeaderAgregar = "Agregar Centro";
                //Limpiamos el objeto de tipo centro
                SeleccionIndice = -1;
                Nombre          = string.Empty;
                Calle           = string.Empty;
                Colonia         = string.Empty;
                No_exterior     = string.Empty;
                No_interior     = string.Empty;
                Codigo_postal   = string.Empty;
                Telefono        = string.Empty;
                Fax             = string.Empty;
                Director        = string.Empty;
                SelectEntidad   = ListEntidad.Where(w => w.ID_ENTIDAD == -1).FirstOrDefault();
                SelectMunicipio = ListMunicipio.Where(w => w.ID_MUNICIPIO == -1).FirstOrDefault();
                SelectedEstatus = Lista_Estatus.LISTA_ESTATUS.Where(w => w.CLAVE == "S").FirstOrDefault();
                /****************************************/
                EditarVisible       = false;
                NuevoVisible        = true;
                GuardarMenuEnabled  = true;
                AgregarMenuEnabled  = false;
                EliminarMenuEnabled = false;
                EditarMenuEnabled   = false;
                CancelarMenuEnabled = true;
                AyudaMenuEnabled    = true;
                SalirMenuEnabled    = true;
                ExportarMenuEnabled = false;
                AgregarVisible      = true;
                bandera_editar      = false;
                FocusText           = true;
                break;

            case "menu_guardar":
                if (!string.IsNullOrEmpty(Nombre))
                {
                    EditarVisible       = false;
                    NuevoVisible        = false;
                    GuardarMenuEnabled  = false;
                    AgregarMenuEnabled  = true;
                    EliminarMenuEnabled = false;
                    EditarMenuEnabled   = false;
                    CancelarMenuEnabled = false;
                    AyudaMenuEnabled    = true;
                    SalirMenuEnabled    = true;
                    ExportarMenuEnabled = true;
                    AgregarVisible      = false;
                    /**********************************/
                    this.GuardarCentros();
                    /**********************************/
                }
                else
                {
                    FocusText = true;
                }
                break;

            case "menu_cancelar":
                NuevoVisible        = false;
                GuardarMenuEnabled  = false;
                AgregarMenuEnabled  = true;
                EliminarMenuEnabled = false;
                EditarMenuEnabled   = false;
                CancelarMenuEnabled = false;
                AyudaMenuEnabled    = true;
                SalirMenuEnabled    = true;
                ExportarMenuEnabled = true;
                AgregarVisible      = false;
                //Limpiamos las variables
                SeleccionIndice = -1;
                Nombre          = string.Empty;
                Calle           = string.Empty;
                Colonia         = string.Empty;
                No_exterior     = string.Empty;
                No_interior     = string.Empty;
                Codigo_postal   = string.Empty;
                Telefono        = string.Empty;
                Fax             = string.Empty;
                Director        = string.Empty;
                SelectEntidad   = ListEntidad.Where(w => w.ID_ENTIDAD == -1).FirstOrDefault();
                SelectMunicipio = ListMunicipio.Where(w => w.ID_MUNICIPIO == -1).FirstOrDefault();
                break;

            case "menu_eliminar":
                var metro = Application.Current.Windows[0] as MetroWindow;
                if (SelectedItem != null)
                {
                    var mySettings = new MetroDialogSettings()
                    {
                        AffirmativeButtonText = "Aceptar",
                        NegativeButtonText    = "Cancelar",
                        AnimateShow           = true,
                        AnimateHide           = false
                    };
                    var result = await metro.ShowMessageAsync("Borrar", "¿Está seguro que desea borrar esto? [ " + SelectedItem.DESCR + " ]", MessageDialogStyle.AffirmativeAndNegative, mySettings);

                    if (result == MessageDialogResult.Affirmative)
                    {
                        if (Eliminar())
                        {
                            var dialog = (BaseMetroDialog)metro.Resources["ConfirmacionDialog"];
                            await metro.ShowMetroDialogAsync(dialog);

                            await TaskEx.Delay(1500);

                            await metro.HideMetroDialogAsync(dialog);
                        }
                        else
                        {
                            mySettings = new MetroDialogSettings()
                            {
                                AffirmativeButtonText = "Aceptar"
                            };
                            await metro.ShowMessageAsync("Algo ocurrió...", "No se puede eliminar información del centro: Tiene dependencias.", MessageDialogStyle.Affirmative, mySettings);

                            await TaskEx.Delay(1500);
                        }
                    }
                }
                else
                {
                    await metro.ShowMessageAsync("Validación", "Debe seleccionar una opción");
                }
                SeleccionIndice = -1;
                break;

            case "menu_exportar":
                SeleccionIndice = -1;
                Cambio          = string.Empty;
                break;

            case "menu_ayuda":
                SeleccionIndice = -1;
                Cambio          = string.Empty;
                break;

            case "menu_salir":
                SeleccionIndice = -1;
                Cambio          = string.Empty;
                PrincipalViewModel.SalirMenu();
                break;
            }
        }
        private void GuardarCentros()
        {
            try
            {
                if (SelectedItem != null) //Editar
                {                         //Actualizar
                    var centro = new CENTRO();
                    centro.ID_CENTRO = SelectedItem.ID_CENTRO;
                    centro.DESCR     = Nombre;
                    centro.CALLE     = Calle;
                    centro.COLONIA   = Colonia;
                    centro.ESTATUS   = SelectedEstatus.CLAVE;
                    if (!string.IsNullOrEmpty(Codigo_postal))
                    {
                        centro.CP = short.Parse(Codigo_postal);
                    }
                    if (!string.IsNullOrEmpty(No_exterior))
                    {
                        centro.NUM_EXT = int.Parse(No_exterior);
                    }
                    centro.NUM_INT = No_interior;
                    if (!string.IsNullOrEmpty(Telefono))
                    {
                        centro.TELEFONO = long.Parse(Telefono);
                    }
                    if (!string.IsNullOrEmpty(Telefono))
                    {
                        centro.FAX = long.Parse(Fax);
                    }
                    centro.DIRECTOR       = Director;
                    centro.ID_MUNICIPIO   = SelectMunicipio.ID_MUNICIPIO;
                    centro.ID_ENTIDAD     = SelectEntidad.ID_ENTIDAD;
                    centro.ID_TIPO_CENTRO = SelectedItem.ID_TIPO_CENTRO;
                    objCentro.Actualizar(centro);
                }
                else
                {   //Agregar
                    var centro = new CENTRO();
                    centro.DESCR   = Nombre;
                    centro.CALLE   = Calle;
                    centro.COLONIA = Colonia;
                    centro.ESTATUS = SelectedEstatus.CLAVE;
                    if (!string.IsNullOrEmpty(Codigo_postal))
                    {
                        centro.CP = string.IsNullOrEmpty(Codigo_postal) ? new Nullable <int>() : int.Parse(Codigo_postal);
                    }
                    if (!string.IsNullOrEmpty(No_exterior))
                    {
                        centro.NUM_EXT = string.IsNullOrEmpty(No_exterior) ? new Nullable <int>() : int.Parse(No_exterior);
                    }
                    centro.NUM_INT = No_interior;
                    if (!string.IsNullOrEmpty(Telefono))
                    {
                        centro.TELEFONO = string.IsNullOrEmpty(Telefono) ? new Nullable <long>() : long.Parse(Telefono);
                    }
                    if (!string.IsNullOrEmpty(Telefono))
                    {
                        centro.FAX = string.IsNullOrEmpty(Fax) ? new Nullable <long>() : long.Parse(Fax);
                    }
                    centro.DIRECTOR       = Director;
                    centro.ID_MUNICIPIO   = SelectMunicipio.ID_MUNICIPIO;
                    centro.ID_ENTIDAD     = SelectEntidad.ID_ENTIDAD;
                    centro.ID_TIPO_CENTRO = 0;

                    objCentro.Insertar(centro);
                }
                //Limpiamos las variables
                SeleccionIndice = -1;
                Nombre          = string.Empty;
                Calle           = string.Empty;
                Colonia         = string.Empty;
                No_exterior     = string.Empty;
                No_interior     = string.Empty;
                Codigo_postal   = string.Empty;
                Telefono        = string.Empty;
                Fax             = string.Empty;
                Director        = string.Empty;
                SelectEntidad   = ListEntidad.Where(w => w.ID_ENTIDAD == -1).FirstOrDefault();
                SelectMunicipio = ListMunicipio.Where(w => w.ID_MUNICIPIO == -1).FirstOrDefault();
                //Mostrar Listado
                GetCentros();
            }
            catch (Exception ex)
            {
                StaticSourcesViewModel.ShowMessageError("Algo pasó...", "Ocurrió un error al guardar.", ex);
            }
        }