/// <summary>
 /// Constructor de la clase para una expresion binaria (de dos operandos)
 /// en donde el segundo operando es un long (un valor para por ejemplo
 /// "campo = 51321312").
 /// </summary>
 public ExpresionSimple(EOperadorSimple op, string atributo, long valor)
 {
     _strvalor = valor.ToString();
     _op = op;
     _atributo = atributo;
     _valor = valor;
 }
 /// <summary>
 /// Constructor de la clase para una expresion binaria (de dos operandos)
 /// en donde el segundo operando es un Guid (un valor para por ejemplo
 /// "Id = '5C2671ED-3953-47E3-A565-0257A6B8B312'").
 /// </summary>
 public ExpresionSimple(EOperadorSimple op, string atributo, Guid valor)
 {
     _strvalor = string.Format("'{0}'", valor);
     _op = op;
     _atributo = atributo;
     _valor = valor;
 }
Exemple #3
0
 /// <summary>
 /// Método helper que termina de armar el operador necesario.
 /// </summary>
 private static ICriterioConsulta ArmarTodo(EOperadorSimple op, string atributo, object valor)
 {
     try {
         if (valor is string) return new ExpresionSimple(op, atributo, (string)valor);
         if (valor is Guid) return new ExpresionSimple(op, atributo, (Guid)valor);
         if (valor is bool) return new ExpresionSimple(op, atributo, (bool)valor);
         if (valor is int) return new ExpresionSimple(op, atributo, (int)valor);
         if (valor is long) return new ExpresionSimple(op, atributo, (long)valor);
         if (valor is double) return new ExpresionSimple(op, atributo, (double)valor);
         if (valor is DateTime) return new ExpresionSimple(op, atributo, (DateTime)valor);
         if (valor is Enum) return new ExpresionSimple(op, atributo, (Enum)valor);
         if (valor is IEntidadIdentificable) return new ExpresionSimple(op, atributo, (IEntidadIdentificable)valor);
         return new ExpresionSimple(op, atributo, valor.ToString());
     } catch (Exception e) {
         throw new PersistErrorException("OPERANDO-TIPO-NOK", e.ToString());
     }
 }
 /// <summary>
 /// Este método devuelve el operador SQL correspondiente al operador
 /// enum que representa a la operacion simple (comparación) pasada 
 /// como argumento.
 /// </summary>
 /// <param name="op">
 /// Enum que representa a la operacion simple.
 /// </param>
 /// <returns>
 /// Cadena que reprsenta al operador como un string (para SQL Where).
 /// </returns>
 private static string GetOpString(EOperadorSimple op)
 {
     switch (op) {
         case EOperadorSimple.IGUAL:
             return "=";
         case EOperadorSimple.DISTINTO:
             return "<>";
         case EOperadorSimple.LIKE:
             return "like";
         case EOperadorSimple.MAYORIGUAL:
             return ">=";
         case EOperadorSimple.MAYORQUE:
             return ">";
         case EOperadorSimple.MENORIGUAL:
             return "<=";
         case EOperadorSimple.MENORQUE:
             return "<";
     }
     throw new PersistErrorException("OPERANDO-NOK");
 }
 /// <summary>
 /// Constructor de la clase para una expresion binaria (de dos operandos)
 /// donde el segundo operando es 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>
 public ExpresionSimple(EOperadorSimple op, string atributo, IEntidadIdentificable valor)
 {
     _strvalor = string.Format("'{0}'", valor.Id);
     _op = op;
     _atributo = atributo;
     _valor = valor;
 }
 /// <summary>
 /// Constructor de la clase para una expresion binaria (de dos operandos)
 /// en donde el segundo operando es un double (un valor para por ejemplo
 /// "campo = 1" -porque true=1 y false=0-).
 /// </summary>
 public ExpresionSimple(EOperadorSimple op, string atributo, bool valor)
 {
     _strvalor = ((valor)
                      ? "1"
                      : "0");
     _op = op;
     _atributo = atributo;
     _valor = valor;
 }