public pnlDictionaryEdtPanelViewModel(IEventAggregator ea, IXmlCompareToolSetting ToolSetting, IXmlCompareUserControl UserControl, IXmlSettingReportDictionary CurrentReportDictionary, IXmlSettingNode _CurrentNode, IXmlSetting CurrentSetting) { _ea = ea; _ea.GetEvent <NodeEvent>().Subscribe(GetNode); _ea.GetEvent <SourceListEvent>().Subscribe(GetSource); _ea.GetEvent <SettingEvent>().Subscribe(GetSetting); _ea.GetEvent <SourceEvent>().Subscribe(GetNodetype); _ToolSetting = ToolSetting; _UserControl = UserControl; CurrentNode = _CurrentNode; _CurrentReportDictionary = CurrentReportDictionary; UpdateCommand = new DelegateCommand(UpdateCommandExecute); DeleteCommand = new DelegateCommand(DeleteCommandExecute); AddCommand = new DelegateCommand(AddCommandExecute); UpdateGeneralCommand = new DelegateCommand(UpdateGeneralCommandExecute); Editable = _UserControl.IsUserHasPriviledge(_UserControl.GetCurrentUser(), "XmlSettingFilePath"); _IssueCategoryList_1.Add(XmlSettingRptDicCategory.ChangedAttribute.ToString()); _IssueCategoryList_1.Add(XmlSettingRptDicCategory.DeletedAttribute.ToString()); _IssueCategoryList_1.Add(XmlSettingRptDicCategory.AddedAttribute.ToString()); _IssueCategoryList_2.Add(XmlSettingRptDicCategory.DeletedChildNode.ToString()); _IssueCategoryList_2.Add(XmlSettingRptDicCategory.AddedChildNode.ToString()); }
private bool GetKeyForNode(XmlNode currentNode, string name, IXmlSetting currentSetting, out string key) { bool rc = true; key = ""; try { IXmlSettingNode settingNode = currentSetting.GetNode(name); List <String> lstKeyAttrName = settingNode.identifier().Split(',').ToList <string>(); if (lstKeyAttrName.Count > 0) { List <string> tempKeys = new List <string>(); foreach (string attrNameNode in lstKeyAttrName) { string attrValue = currentNode.Attributes[attrNameNode].Value; tempKeys.Add(attrValue); } key = String.Join("|", tempKeys.ToArray()); } } catch (Exception e) { key = ""; rc = false; } return(rc); }
public ToolSettingViewModel(IEventAggregator ea, IXmlCompareToolSetting ToolSetting, IXmlSettingCollection CurrentSettingCollection, pnlDictionaryEdtPanelViewModel DictionaryEdtPanel, IXmlCompareUserControl UserControl, IXmlSettingReportDictionary CurrentReportDictionary, IXmlSettingFactorty SettingFact, IRegionManager regionManager, IXmlSettingNode _CurrentNode, IXmlSetting _CurrentSetting) { AddNewTypeCommand = new DelegateCommand <IXmlSettingCollection>(AddNewTypeCommandExecute); DeleteTypeCommand = new DelegateCommand(DeleteTypeCommandExecute); KeyFlagTrueCommand = new DelegateCommand(KeyFlagTrueCommandExecute); KeyFlagFalseCommand = new DelegateCommand(KeyFlagFalseCommandExecute); SaveCommand = new DelegateCommand(SaveCommandExecute); chkMoreCommand = new DelegateCommand(chkMoreCommandExecute); BackCommand = new DelegateCommand(Back); AddAttrCompareFlagCommand = new DelegateCommand(AddAttrCompareFlag); RemoveAttrCompareFlagCommand = new DelegateCommand(RemoveAttrCompareFlag); AddNodeCompareFlagCommand = new DelegateCommand(AddNodeCompareFlag); RemoveNodeCompareFlagCommand = new DelegateCommand(RemoveNodeCompareFlag); CurrentNode = _CurrentNode; _CurrentReportDictionary = CurrentReportDictionary; CurrentSetting = _CurrentSetting; _regionManager = regionManager; m_ToolSetting = ToolSetting; m_UserControl = UserControl; m_SettingFact = SettingFact; m_DictionaryEdtPanel = DictionaryEdtPanel; m_DictionaryEdtPanel = new pnlDictionaryEdtPanelViewModel(ea, m_ToolSetting, m_UserControl, _CurrentReportDictionary, CurrentNode, CurrentSetting); ChkMoreSelected = false; m_CurrentSettingCollection = CurrentSettingCollection; m_CurrentSettingCollection = m_SettingFact.ReadSettingCollection(m_ToolSetting.GetXmlSettingFilePath().Value); _ea = ea; _ea.GetEvent <CollectionEvent>().Subscribe(GetCollection); Flag = m_UserControl.IsUserHasPriviledge(m_UserControl.GetCurrentUser(), "XmlSettingFilePath"); XmlTypeList = new ObservableCollection <string>(m_CurrentSettingCollection.GetAllSettingTypes()); SelectType = null; ChkContent = "Show Report Dictionary Setting"; }
public Dictionary <IXmlSettingNode, List <IXmlSettingNode> > GetChildRelation(string xmlFilePath) { XmlDocument NodeSettingDoc = new XmlDocument(); NodeSettingDoc.Load(xmlFilePath); XmlNode root = NodeSettingDoc.DocumentElement; XmlNodeList listNode = root.SelectNodes("//*"); XElement xele = XElement.Load(xmlFilePath); List <string> lstDisctinctNodeNames = (from XmlNode tempNode in listNode select tempNode.Name).Distinct().ToList(); foreach (var item in lstDisctinctNodeNames) { if (item == root.Name) { List <IXmlSettingNode> relation = new List <IXmlSettingNode>(); foreach (var sub in xele.Descendants()) { if (!relation.Exists(r => r.name == sub.Name))// == sub.Name.ToString())) { if (GetNode(sub.Name.ToString()) != null) { IXmlSettingNode x = GetNode(sub.Name.ToString()); //relation.Add(sub.Name.ToString()); relation.Add(x); } } } if (GetNode(item) != null) { IXmlSettingNode y = GetNode(item); Children.Add(y, relation); } } else { var nodes = xele.Descendants(item).Select(r => r); if (nodes != null) { List <IXmlSettingNode> relation = new List <IXmlSettingNode>(); foreach (var par in nodes.Descendants()) { if (!relation.Exists(r => r.name == par.Name.ToString())) { if (GetNode(par.Name.ToString()) != null) { IXmlSettingNode x = GetNode(par.Name.ToString()); relation.Add(x); } } } if (GetNode(item) != null) { IXmlSettingNode y = GetNode(item); Children.Add(y, relation); } } } } return(Children); }
//method public IXmlSettingNode GetNode(string strNodeName) { /*return (from IXmlSettingNode tmp in m_Nodes * where tmp.name == strNodeName * select tmp).FirstOrDefault();*/ IXmlSettingNode x = (from IXmlSettingNode tmp in m_Nodes where tmp.name == strNodeName select tmp).First(); return(x); }
public void AppendNode(IXmlSettingNode node) { CXmlSettingNodeImp value = (CXmlSettingNodeImp)node; if (m_Nodes.Exists(m => m.name == value.name)) { throw new Exception("duplicate node name[" + value.name + "] exist in setting, append failed"); } else { m_Nodes.Add(value); } }
private bool GetEffectiveAttributeNames(XmlNode currentNode, string name, IXmlSetting currentSetting, out List <string> AttrNameList) { bool rc = true; AttrNameList = new List <string>(); try { IXmlSettingNode settingNode = currentSetting.GetNode(name); List <String> lstEffectiveAttrName = settingNode.attributesToCompare().Split(',').ToList <string>(); AttrNameList.AddRange(lstEffectiveAttrName); } catch (Exception e) { rc = false; } return(rc); }
private void DomToNode(IXmlSetting currentSetting, XmlNode currentNode, ref CXmlFileNodeImp parent) { bool NodeCompareFlag = false; try { IXmlSettingNode settingNode = currentSetting.GetNode(currentNode.Name); if (settingNode != null) { NodeCompareFlag = settingNode.compare_flag; } } catch (Exception e) { // do nothing } if (NodeCompareFlag) { CXmlFileNodeImp neoNode = new CXmlFileNodeImp(currentNode.Name, GetXPath(currentNode)); string key = ""; if (GetKeyForNode(currentNode, neoNode.name, currentSetting, out key)) { neoNode.key = key; } key = neoNode.name + "|" + neoNode.key; if (currentNode.NodeType == XmlNodeType.Text) { neoNode.text = currentNode.Value; parent.m_childNodes.Add(neoNode.key, neoNode); neoNode.m_parentNodes.Add(parent.key, parent); return; } foreach (XmlAttribute xmlAttr in currentNode.Attributes) { List <string> listOfAttrName = new List <string>(); GetEffectiveAttributeNames(currentNode, neoNode.name, currentSetting, out listOfAttrName); if (listOfAttrName.IndexOf(xmlAttr.Name) >= 0) { neoNode.m_attributes.Add(xmlAttr.Name, xmlAttr.Value); } } foreach (XmlNode childNode in currentNode.ChildNodes) { DomToNode(currentSetting, childNode, ref neoNode); } if (parent.m_childNodes.ContainsKey(key)) { // dealing with duplicate key, add numeric suffix to the key if (m_DuplicateKeyMemo.ContainsKey(key)) { m_DuplicateKeyMemo[key] = m_DuplicateKeyMemo[key] + 1; } else { m_DuplicateKeyMemo.Add(key, 1); } key = key + "." + m_DuplicateKeyMemo[key].ToString(); } parent.m_childNodes.Add(key, neoNode); neoNode.m_parentNodes.Add(key, parent); } }
public void RemoveNode(IXmlSettingNode node) { CXmlSettingNodeImp value = (CXmlSettingNodeImp)node; m_Nodes.Remove(value); }
public void GetNode(IXmlSettingNode node) { CurrentNode = node; }
public void BindDictionary(ref IXmlSettingNode iNode, ref IXmlSetting iSetting) { CurrentNode = iNode; _CurrentSetting = iSetting; }