/// <summary>%
        /// Método para guardar los valores del contexto
        /// </summary>
        private void Guardar()
        {
            bool guardar = ValidaGuardar();

            if (guardar)
            {
                try
                {
                    int problemaTratamientoID = Contexto.ProblemaTratamientoID;
                    var problemaTratamientoBL = new ProblemaTratamientoBL();
                    Contexto.ProblemaID    = Contexto.Problema.ProblemaID;
                    Contexto.TratamientoID = Contexto.Tratamiento.TratamientoID;
                    problemaTratamientoBL.Guardar(Contexto);
                    SkMessageBox.Show(this, Properties.Resources.GuardadoConExito, MessageBoxButton.OK, MessageImage.Correct);
                    if (problemaTratamientoID != 0)
                    {
                        confirmaSalir = false;
                        Close();
                    }
                    else
                    {
                        InicializaContexto();
                    }
                }
                catch (ExcepcionGenerica)
                {
                    SkMessageBox.Show(this, Properties.Resources.ProblemaTratamiento_ErrorGuardar, MessageBoxButton.OK, MessageImage.Error);
                }
                catch (Exception ex)
                {
                    Logger.Error(ex);
                    SkMessageBox.Show(this, Properties.Resources.ProblemaTratamiento_ErrorGuardar, MessageBoxButton.OK, MessageImage.Error);
                }
            }
        }
        /// <summary>
        /// Obtiene la lista para mostrar en el grid
        /// </summary>
        private void ObtenerListaProblemaTratamiento(int inicio, int limite)
        {
            try
            {
                var problemaTratamientoBL       = new ProblemaTratamientoBL();
                ProblemaTratamientoInfo filtros = ObtenerFiltros();
                if (ucPaginacion.ContextoAnterior != null)
                {
                    bool contextosIguales = ucPaginacion.CompararObjetos(Contexto, ucPaginacion.ContextoAnterior);
                    if (!contextosIguales)
                    {
                        ucPaginacion.Inicio = 1;
                        inicio = 1;
                    }
                }
                var pagina = new PaginacionInfo {
                    Inicio = inicio, Limite = limite
                };

                ResultadoInfo <ProblemaTratamientoInfo> resultadoInfo = problemaTratamientoBL.ObtenerPorPagina(pagina, filtros);
                if (resultadoInfo != null && resultadoInfo.Lista != null &&
                    resultadoInfo.Lista.Count > 0)
                {
                    gridDatos.ItemsSource       = resultadoInfo.Lista;
                    ucPaginacion.TotalRegistros = resultadoInfo.TotalRegistros;
                }
                else
                {
                    ucPaginacion.TotalRegistros = 0;
                    gridDatos.ItemsSource       = new List <ProblemaTratamiento>();
                }
            }
            catch (ExcepcionGenerica)
            {
                SkMessageBox.Show(Application.Current.Windows[ConstantesVista.WindowPrincipal], Properties.Resources.ProblemaTratamiento_ErrorBuscar, MessageBoxButton.OK, MessageImage.Error);
            }
            catch (Exception ex)
            {
                Logger.Error(ex);
                SkMessageBox.Show(Application.Current.Windows[ConstantesVista.WindowPrincipal], Properties.Resources.ProblemaTratamiento_ErrorBuscar, MessageBoxButton.OK, MessageImage.Error);
            }
        }
        /// <summary>
        /// Metodo que valida los datos para guardar
        /// </summary>
        /// <returns></returns>
        private bool ValidaGuardar()
        {
            bool   resultado = true;
            string mensaje   = string.Empty;

            try
            {
                if (string.IsNullOrWhiteSpace(txtProblemaTratamientoID.Text))
                {
                    resultado = false;
                    mensaje   = Properties.Resources.ProblemaTratamientoEdicion_MsgProblemaTratamientoIDRequerida;
                    txtProblemaTratamientoID.Focus();
                }
                else if (Contexto.Tratamiento.Organizacion == null || Contexto.Tratamiento.Organizacion.OrganizacionID == 0)
                {
                    resultado = false;
                    mensaje   = Properties.Resources.ProblemaTratamientoEdicion_MsgErorrSinOrganizacion;
                    skAyudaOrganizacion.AsignarFoco();
                }
                else if (Contexto.Problema == null || Contexto.Problema.ProblemaID == 0)
                {
                    resultado = false;
                    mensaje   = Properties.Resources.ProblemaTratamientoEdicion_MsgProblemaIDRequerida;
                    skAyudaProblema.AsignarFoco();
                }
                else if (Contexto.Tratamiento.Sexo == 0)
                {
                    resultado = false;
                    mensaje   = Properties.Resources.ProblemaTratamientoEdicion_MsgSexoRequerida;
                    cmbSexo.Focus();
                }
                else if (Contexto.Tratamiento == null || Contexto.Tratamiento.CodigoTratamiento == 0)
                {
                    resultado = false;
                    mensaje   = Properties.Resources.ProblemaTratamientoEdicion_MsgTratamientoIDRequerida;
                    //skAyudaTratamiento.AsignarFoco();
                    ituTratamiento.Focus();
                }
                else if (Contexto.Tratamiento == null || Contexto.Tratamiento.TratamientoID == 0)
                {
                    resultado = false;
                    mensaje   = Properties.Resources.ProblemaTratamientoEdicion_MsgTratamientoIDRequerida;
                    //skAyudaTratamiento.AsignarFoco();
                    ituTratamiento.Focus();
                }
                else if (!ituDias.Value.HasValue || (ituDias.Value.HasValue && ituDias.Value.Value == 0) || Contexto.Dias == 0)
                {
                    resultado = false;
                    mensaje   = Properties.Resources.ProblemaTratamientoEdicion_MsgDiasRequerida;
                    ituDias.Focus();
                }
                else if (!ituOrden.Value.HasValue || (ituOrden.Value.HasValue && ituOrden.Value.Value == 0) || Contexto.Orden == 0)
                {
                    resultado = false;
                    mensaje   = Properties.Resources.ProblemaTratamientoEdicion_MsgOrdenRequerida;
                    ituOrden.Focus();
                }

                else if (cmbActivo.SelectedItem == null)
                {
                    resultado = false;
                    mensaje   = Properties.Resources.ProblemaTratamientoEdicion_MsgActivoRequerida;
                    cmbActivo.Focus();
                }
                else
                {
                    int problemaTratamientoId = Extensor.ValorEntero(txtProblemaTratamientoID.Text);
                    Contexto.ProblemaID = Contexto.Problema.ProblemaID;

                    var problemaTratamientoBL = new ProblemaTratamientoBL();
                    ProblemaTratamientoInfo problemaTratamiento =
                        problemaTratamientoBL.ObtenerProblemaTratamientoExiste(Contexto);

                    if (problemaTratamiento != null && (problemaTratamientoId == 0 || problemaTratamientoId != problemaTratamiento.ProblemaTratamientoID))
                    {
                        resultado = false;
                        mensaje   = string.Format(Properties.Resources.ProblemaTratamientoEdicion_MsgDescripcionExistente, problemaTratamiento.ProblemaTratamientoID);
                    }
                }
            }
            catch (Exception ex)
            {
                throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex);
            }

            if (!string.IsNullOrWhiteSpace(mensaje))
            {
                SkMessageBox.Show(this, mensaje, MessageBoxButton.OK, MessageImage.Warning);
            }
            return(resultado);
        }