示例#1
0
        /// <summary>
        /// check for required clauses
        /// </summary>
        /// <param name="clauses"></param>
        /// <param name="type"></param>
        private static void CheckRequiredClause(List <KeyValue> clauses, QAStatementType type)
        {
            string[] clauseNames = RequiredClauses[type];

            for (int i = 0; i < clauseNames.Length; i++)
            {
                string clause = clauseNames[i];
                bool   found  = false;

                foreach (KeyValue kv in clauses)
                {
                    if (clause.Equals(kv.Key, StringComparison.InvariantCultureIgnoreCase))
                    {
                        found = true;
                        break;
                    }
                }

                if (found)
                {
                    continue;
                }

                string err = string.Format("A required clause '{0}' not found", clause);
                throw new ArgumentException(err);
            }
        }
示例#2
0
 /// <summary>
 /// Create a new object with given attributes
 /// </summary>
 /// <param name="items"></param>
 /// <param name="statementType"></param>
 public Statement(List <KeyValue> items, QAStatementType statementType)
 {
     if (items == null)
     {
         throw new ArgumentNullException("items");
     }
     this.Items         = items;
     this.StatementType = statementType;
 }
示例#3
0
        private static void RegisterStatements()
        {
            Clauses         = new Dictionary <QAStatementType, string[]>();
            RequiredClauses = new Dictionary <QAStatementType, string[]>();

            //DataSet ds = GetStatementsDS("ReferenceDS");
            DataSet ds = GetStatementsDS("crudwork.DataSetTools.Resources.References.xml");

            if (ds == null)
            {
                throw new ArgumentNullException("ds");
            }

            DataTable dt = ds.Tables["Statement"];

            if (dt == null)
            {
                throw new ArgumentNullException("dt");
            }

            for (int i = 0; i < dt.Rows.Count; i++)
            {
                DataRow dr = dt.Rows[i];

                QAStatementType key     = (QAStatementType)Enum.Parse(typeof(QAStatementType), dr["Key"].ToString());
                string[]        clauses = dr["Value"].ToString().Split('|');

                string[] required = null;
                string   reqStr   = dr["Required"].ToString();
                if (string.IsNullOrEmpty(reqStr) || reqStr == "*")
                {
                    required = clauses;
                }
                else
                {
                    required = reqStr.Split('|');
                }

                Clauses.Add(key, clauses);
                RequiredClauses.Add(key, required);
            }
        }