/// <summary> /// Este método debe encargarase de devolver la expresion de Criteria /// del ORM para el operando en cuestion (obvio depende de la subclase). /// El NH es porque arrancamos con NHibernate (ggg). /// </summary> /// <returns> /// La representación de Criteria del ORM para el operando deseado. /// </returns> protected abstract ICriterion getCriterionNH(ICriterioConsulta left, ICriterioConsulta rigth);
/// <summary> /// Método que encapsula la creación de un ICriterioConsulta. /// </summary> public static ICriterioConsulta And(ICriterioConsulta left, ICriterioConsulta rigth) { return new ExpresionAnd(left, rigth); }
/// <summary> /// Constructor de la clase para una expresion binaria (de dos operandos) /// donde el segundo operando es una clase persistente (IEntidadIdentificable /// para por ejemplo "campo = unaCuenta"). En este caso se toma su Id para /// la cadena where y se toma ek propio objeto para el NHicriteria. /// </summary> protected ExpresionLogica(ICriterioConsulta left, ICriterioConsulta rigth) { _left = left; if (rigth != null) _rigth = rigth; }
/// <summary> /// Método sobrecargado (ver en clase base). /// </summary> protected override ICriterion getCriterionNH(ICriterioConsulta left, ICriterioConsulta rigth) { return Restrictions.And(left.getCriterioNH(), rigth.getCriterioNH()); }
/// <summary> /// Constructor de la clase que únicamente pasa los argumentos a la clase base. /// </summary> public ExpresionAnd(ICriterioConsulta left, ICriterioConsulta rigth) : base(left, rigth) { }
/// <summary> /// Constructor de la clase que únicamente pasa los argumentos a la clase base. /// </summary> public ExpresionNot(ICriterioConsulta operando) : base(operando, null) { }
/// <summary> /// Este evento es llamado al presionar el botón Buscar Personas /// y se encarga de ejecutar el filtro y mostrar los resultados. /// </summary> /// <param name="sender"> /// El objeto que realiza la llamda del evento. /// </param> /// <param name="e"> /// Los argumentos de la llamada del evento. /// </param> private void btnBuscar_Click(object sender, EventArgs e) { try { Cursor = Cursors.WaitCursor; Sistema.Controlador.Winppal.setAyuda(Mensaje.TextoMensaje("UPDATE-LISTPANEL")); if (_controlListadoPersonas == null) throw new VistaErrorException("UPDATE-LISTPANEL"); cerrarPaneles(); // Blanquea el listado de cuentas para no confundir CriterioCuentas = Criterios.EsNulo("Id"); btnFiltrar_Click(sender, e); // Luego carga el listado de las personas _controlListadoPersonas.Filtros.Clear(); _controlListadoPersonas.Filtros.Add(armaCriterioPersonas()); actualizarListadoPersonas(); _controlListadoPersonas.alActualizarFila(); } catch (Exception ex) { Sistema.Controlador.mostrar("SELECT-CUENTAS-NOK", ENivelMensaje.ERROR, ex.ToString(), true); } finally { Sistema.Controlador.Winppal.setAyuda(Mensaje.TextoMensaje("AYUDA-LISTO")); Cursor = Cursors.Default; } }