示例#1
0
		/// <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;
		}
示例#2
0
        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;
            }

        }
示例#3
0
 public void AddOMQueryClause(OMQueryClause omQueryClause)
 {
     m_listQueryClauses.Add(omQueryClause);
 }
示例#4
0
        public void AddOMQueryClause(OMQueryClause omQueryClause)
        {

            m_listQueryClauses.Add(omQueryClause);
        }