Exemple #1
0
 private static bool RowIsMatched(PageRequest request, ViewPage page, DataRow row)
 {
     foreach (string f in request.Filter)
     {
         Match m = Regex.Match(f, "^(?\'FieldName\'\\w+)\\:(?\'Operation\'=)(?\'Value\'.+)$");
         if (m.Success)
         {
             string fieldName = m.Groups["FieldName"].Value;
             if (page.ContainsField(fieldName))
             {
                 string fieldValue = m.Groups["Value"].Value;
                 if (fieldValue == "null")
                 {
                     fieldValue = String.Empty;
                 }
                 object fv = row[fieldName];
                 if (!((Convert.ToString(fv) == fieldValue)))
                 {
                     return(false);
                 }
             }
         }
     }
     return(true);
 }
Exemple #2
0
 private void EnsurePageFields(ViewPage page, SelectClauseDictionary expressions)
 {
     XPathNavigator statusBar = _config.SelectSingleNode("/c:dataController/c:statusBar");
     if (statusBar != null)
         page.StatusBar = statusBar.Value;
     if (page.Fields.Count == 0)
     {
         XPathNodeIterator fieldIterator = _config.Select("/c:dataController/c:fields/c:field");
         while (fieldIterator.MoveNext())
         {
             string fieldName = fieldIterator.Current.GetAttribute("name", String.Empty);
             if (expressions.ContainsKey(fieldName))
                 page.Fields.Add(new DataField(fieldIterator.Current, Resolver));
         }
     }
     XPathNodeIterator keyFieldIterator = _config.Select("/c:dataController/c:fields/c:field[@isPrimaryKey=\'true\' or @hidden=\'true\']");
     while (keyFieldIterator.MoveNext())
     {
         string fieldName = keyFieldIterator.Current.GetAttribute("name", String.Empty);
         if (!(page.ContainsField(fieldName)))
             page.Fields.Add(new DataField(keyFieldIterator.Current, Resolver, true));
     }
     XPathNodeIterator aliasIterator = _view.Select(".//c:dataFields/c:dataField/@aliasFieldName", Resolver);
     while (aliasIterator.MoveNext())
         if (!(page.ContainsField(aliasIterator.Current.Value)))
         {
             XPathNodeIterator fieldIterator = _config.Select("/c:dataController/c:fields/c:field[@name=\'{0}\']", aliasIterator.Current.Value);
             if (fieldIterator.MoveNext())
                 page.Fields.Add(new DataField(fieldIterator.Current, Resolver, true));
         }
     XPathNodeIterator lookupFieldIterator = _config.Select("/c:dataController/c:fields/c:field[c:items/@dataController]");
     while (lookupFieldIterator.MoveNext())
     {
         string fieldName = lookupFieldIterator.Current.GetAttribute("name", String.Empty);
         if (!(page.ContainsField(fieldName)))
             page.Fields.Add(new DataField(lookupFieldIterator.Current, Resolver, true));
     }
     int i = 0;
     while (i < page.Fields.Count)
     {
         DataField field = page.Fields[i];
         if ((!(field.FormatOnClient) && !(String.IsNullOrEmpty(field.DataFormatString))) && !(field.IsMirror))
         {
             page.Fields.Insert((i + 1), new DataField(field));
             i = (i + 2);
         }
         else
             i++;
     }
     XPathNodeIterator dynamicConfigIterator = _config.Select("/c:dataController/c:fields/c:field[c:configuration!=\'\']/c:configuration|/c:dataCo" +
             "ntroller/c:fields/c:field/c:items[@copy!=\'\']/@copy");
     while (dynamicConfigIterator.MoveNext())
     {
         Match dynamicConfig = Regex.Match(dynamicConfigIterator.Current.Value, "(\\w+)=(\\w+)");
         while (dynamicConfig.Success)
         {
             int groupIndex = 2;
             if (dynamicConfigIterator.Current.Name == "copy")
                 groupIndex = 1;
             if (!(page.ContainsField(dynamicConfig.Groups[groupIndex].Value)))
             {
                 XPathNavigator nav = _config.SelectSingleNode("/c:dataController/c:fields/c:field[@name=\'{0}\']", dynamicConfig.Groups[1].Value);
                 if (nav != null)
                     page.Fields.Add(new DataField(nav, Resolver, true));
             }
             dynamicConfig = dynamicConfig.NextMatch();
         }
         if (page.InTransaction)
         {
             XPathNodeIterator globalFieldIterator = _config.Select("/c:dataController/c:fields/c:field");
             while (globalFieldIterator.MoveNext())
             {
                 string fieldName = globalFieldIterator.Current.GetAttribute("name", String.Empty);
                 if (!(page.ContainsField(fieldName)))
                     page.Fields.Add(new DataField(globalFieldIterator.Current, Resolver, true));
             }
         }
     }
     foreach (DataField field in page.Fields)
         ConfigureDataField(page, field);
 }
Exemple #3
0
 protected virtual DbDataReader ExecuteVirtualReader(PageRequest request, ViewPage page)
 {
     DataTable table = new DataTable();
     foreach (DataField field in page.Fields)
         table.Columns.Add(field.Name, typeof(int));
     DataRow r = table.NewRow();
     if (page.ContainsField("PrimaryKey"))
         r["PrimaryKey"] = 1;
     table.Rows.Add(r);
     return new DataTableReader(table);
 }
Exemple #4
0
 private static bool RowIsMatched(PageRequest request, ViewPage page, DataRow row)
 {
     foreach (string f in request.Filter)
     {
         Match m = Regex.Match(f, "^(?\'FieldName\'\\w+)\\:(?\'Operation\'=)(?\'Value\'.+)$");
         if (m.Success)
         {
             string fieldName = m.Groups["FieldName"].Value;
             if (page.ContainsField(fieldName))
             {
                 string fieldValue = m.Groups["Value"].Value;
                 if (fieldValue == "null")
                     fieldValue = String.Empty;
                 object fv = row[fieldName];
                 if (!((Convert.ToString(fv) == fieldValue)))
                     return false;
             }
         }
     }
     return true;
 }