/// <summary> /// Prepares the OMQuery Groups /// </summary> /// <param name="datagridview"></param> /// <returns></returns> private static OMQueryGroup PrepareQueryCollection(dbDataGridView datagridview) { //Get all the columns names from resource string fieldColumnName = Helper.GetResourceString(Constants.QUERY_GRID_FIELD); string conditionColumnName = Helper.GetResourceString(Constants.QUERY_GRID_CONDITION); string valueColumnName = Helper.GetResourceString(Constants.QUERY_GRID_VALUE); string operatorColumnName = Helper.GetResourceString(Constants.QUERY_GRID_OPERATOR); OMQueryGroup objectManagerQueryGroup = null; try { OMETrace.WriteFunctionStart(); int rowCount = datagridview.RowCount; if (rowCount > 0) { objectManagerQueryGroup = new OMQueryGroup(); string stringOperator = datagridview.Rows[0].Cells[operatorColumnName].Value.ToString(); CommonValues.LogicalOperators clauseOperator = (CommonValues.LogicalOperators)Enum.Parse(typeof(CommonValues.LogicalOperators), stringOperator); for (int i = 0; i < rowCount; i++) { string fieldName = datagridview.Rows[i].Cells[fieldColumnName].Value.ToString(); string stringCondition = datagridview.Rows[i].Cells[conditionColumnName].Value.ToString(); string className = datagridview.Rows[i].Cells[Constants.QUERY_GRID_CALSSNAME_HIDDEN].Value.ToString(); string fieldType = FieldTypeFor(datagridview.Rows[i]); //get the value for each expression if value not specified then return null string stringValue; if (datagridview.Rows[i].Cells[valueColumnName].Value != null) { stringValue = datagridview.Rows[i].Cells[valueColumnName].Value.ToString(); } else return null; OMQueryClause queryClause = new OMQueryClause(className, fieldName, stringCondition, stringValue, clauseOperator, fieldType); objectManagerQueryGroup.AddOMQueryClause(queryClause); } } OMETrace.WriteFunctionEnd(); } catch (Exception oEx) { LoggingHelper.ShowMessage(oEx); } return objectManagerQueryGroup; }
public IConstraint FormulateFieldConstraints(IQuery query, OMQueryClause clause) { try { IConstraint cons = null; string[] str = clause.Fieldname.Split('.'); IQuery q = AddAsDescends(query, str); IType type= Db4oClient.TypeResolver.Resolve(clause.FieldType); switch (type.DisplayName ) { case BusinessConstants.DATETIME: { IConstraint c1=null, c2=null; DateTimeFormatInfo dateTimeFormatterProvider = DateTimeFormatInfo.CurrentInfo.Clone() as DateTimeFormatInfo; dateTimeFormatterProvider.ShortDatePattern = "MM/dd/yyyy hh:mm:ss tt"; DateTime dt = DateTime.Parse(clause.Value.Trim(), dateTimeFormatterProvider); DateTime dt1 = dt.AddDays(-1); DateTime dt2 = dt.AddDays(1); if (clause.Operator.Equals(BusinessConstants.CONDITION_EQUALS)) cons = q.Constrain(dt2).Smaller().And(q.Constrain(dt1).Greater()); else if (clause.Operator.Equals(BusinessConstants.CONDITION_GREATERTHAN)) { c1 = q.Constrain(dt2).Greater(); c2=q.Constrain(dt2.AddDays(1)).Smaller().And(q.Constrain(dt).Greater()); cons =c1.Or(c2); c1 = null; c2 = null; } else if (clause.Operator.Equals(BusinessConstants.CONDITION_LESSTHAN)) { c1 = q.Constrain(dt1).Smaller(); c2 = q.Constrain(dt).Smaller().And(q.Constrain(dt1.AddDays(-1)).Greater()); cons = c1.Or(c2); } break; } default: cons = q.Constrain(type.Cast(clause.Value)); break; } return cons; } catch (Exception oEx) { LoggingHelper.HandleException(oEx); return null; } }
public void AddOMQueryClause(OMQueryClause omQueryClause) { m_listQueryClauses.Add(omQueryClause); }