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());
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
 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";
 }
Ejemplo n.º 4
0
        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);
        }
Ejemplo n.º 5
0
        //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);
        }
Ejemplo n.º 6
0
        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);
            }
        }
Ejemplo n.º 7
0
        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);
        }
Ejemplo n.º 8
0
        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);
            }
        }
Ejemplo n.º 9
0
        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;
 }