/// <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); } }
/// <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; }
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); } }