public QueryCustomization(XmlNode node) { XmlNode xcommon = node.SelectSingleNode("global"); ConfigExists = xcommon != null; if (xcommon != null) { GlobalTable = new GlobalRec(); Dictionary <string, TokenMapRec> maps = GlobalTable.tokenMaps; var xmaps = xcommon.SelectNodes("maps/map"); foreach (XmlNode xmap in xmaps) { bool glb = xmap.Attributes["globalize"] == null || xmap.Attributes["globalize"].Value.ToLower() == "true"; string toid = xmap.Attributes["to-resId"] == null || !glb ? null : xmap.Attributes["to-resId"].Value; string toname = xmap.Attributes["to"] == null ? "" : xmap.Attributes["to"].Value; if (toid == null) { maps.Add(xmap.Attributes["from"].Value, new TokenMapRec { ToName = toname }); } else { maps.Add(xmap.Attributes["from"].Value, new TokenMapRec { ToID = toid }); } } } XmlNodeList xdataSrcs = node.SelectNodes("datasource"); if (xdataSrcs == null) { return; } ConfigExists = true; foreach (XmlNode xdatasrc in xdataSrcs) { XmlNodeList xsets = xdatasrc.SelectNodes("set"); DataSourceRec rec = new DataSourceRec(); string src = xdatasrc.Attributes["name"].Value; MapTable.Add(src, rec); foreach (XmlNode xset in xsets) { string set = xset.Attributes["name"].Value; if (!IsValidSetName(src, set)) { continue; } Dictionary <string, TokenMapRec> maps = new Dictionary <string, TokenMapRec>(); rec.TokenMaps.Add(set, maps); var xmaps = xset.SelectNodes("maps/map"); foreach (XmlNode xmap in xmaps) { bool glb = xmap.Attributes["globalize"] == null || xmap.Attributes["globalize"].Value.ToLower() == "true"; string toid = xmap.Attributes["to-resId"] == null || !glb ? null : xmap.Attributes["to-resId"].Value; string toname = xmap.Attributes["to"] == null ? "" : xmap.Attributes["to"].Value; if (toid == null) { maps.Add(xmap.Attributes["from"].Value, new TokenMapRec { ToName = toname }); } else { maps.Add(xmap.Attributes["from"].Value, new TokenMapRec { ToID = toid }); } } // var lfilters = xset.SelectNodes("filters"); foreach (XmlNode nfiters in lfilters) { SetFilters setadminflts = new SetFilters(); setadminflts.AllowImplied = nfiters.Attributes["allow-implied"] == null || nfiters.Attributes["allow-implied"].Value.ToLower() == "true" ? true : false; List <TokenFilter> l = new List <TokenFilter>(); foreach (XmlNode n in nfiters.SelectNodes("filter")) { l.Add(getFilter(n, setadminflts.AllowImplied)); } setadminflts.Filters = l.ToArray(); var setfilters = new Dictionary <string, SetFilters>(); setfilters.Add(set, setadminflts); rec.TokenFiltersMap.Add(nfiters.Attributes["type"].Value, setfilters); } } } }
public QueryCustomization(XmlNode node) { XmlNode xcommon = node.SelectSingleNode("global"); ConfigExists = xcommon != null; if (xcommon != null) { GlobalTable = new GlobalRec(); Dictionary<string, TokenMapRec> maps = GlobalTable.tokenMaps; var xmaps = xcommon.SelectNodes("maps/map"); foreach (XmlNode xmap in xmaps) { bool glb = xmap.Attributes["globalize"] == null || xmap.Attributes["globalize"].Value.ToLower() == "true"; string toid = xmap.Attributes["to-resId"] == null || !glb ? null : xmap.Attributes["to-resId"].Value; string toname = xmap.Attributes["to"] == null ? "" : xmap.Attributes["to"].Value; if (toid == null) maps.Add(xmap.Attributes["from"].Value, new TokenMapRec { ToName = toname }); else maps.Add(xmap.Attributes["from"].Value, new TokenMapRec { ToID = toid }); } } XmlNodeList xdataSrcs = node.SelectNodes("datasource"); if (xdataSrcs == null) return; ConfigExists = true; foreach (XmlNode xdatasrc in xdataSrcs) { XmlNodeList xsets = xdatasrc.SelectNodes("set"); DataSourceRec rec = new DataSourceRec(); string src =xdatasrc.Attributes["name"].Value; MapTable.Add(src, rec); foreach (XmlNode xset in xsets) { string set = xset.Attributes["name"].Value; if (!IsValidSetName(src, set)) continue; Dictionary<string, TokenMapRec> maps = new Dictionary<string, TokenMapRec>(); rec.TokenMaps.Add(set, maps); var xmaps = xset.SelectNodes("maps/map"); foreach (XmlNode xmap in xmaps) { bool glb = xmap.Attributes["globalize"] == null || xmap.Attributes["globalize"].Value.ToLower() == "true"; string toid = xmap.Attributes["to-resId"] == null || !glb ? null : xmap.Attributes["to-resId"].Value; string toname = xmap.Attributes["to"] == null ? "" : xmap.Attributes["to"].Value; if (toid == null) maps.Add(xmap.Attributes["from"].Value, new TokenMapRec { ToName = toname }); else maps.Add(xmap.Attributes["from"].Value, new TokenMapRec { ToID = toid }); } // var lfilters = xset.SelectNodes("filters"); foreach (XmlNode nfiters in lfilters) { SetFilters setadminflts = new SetFilters(); setadminflts.AllowImplied = nfiters.Attributes["allow-implied"] == null || nfiters.Attributes["allow-implied"].Value.ToLower() == "true" ? true : false; List<TokenFilter> l = new List<TokenFilter>(); foreach (XmlNode n in nfiters.SelectNodes("filter")) l.Add(getFilter(n, setadminflts.AllowImplied)); setadminflts.Filters = l.ToArray(); var setfilters = new Dictionary<string, SetFilters>(); setfilters.Add(set, setadminflts); rec.TokenFiltersMap.Add(nfiters.Attributes["type"].Value, setfilters); } } } }