public ProjectVisitor(bool fastLoader, string[] projects, ProjectFileFilter filter)
		{
			_fastLoader = fastLoader;
			_projects = new FileList();
			_projects.ProhibitedAttributes = FileAttributes.Hidden;
			_projects.FileFound += FileFound;
			if (filter != null)
				_projects.FileFound += delegate(object o, FileList.FileFoundEventArgs e) { e.Ignore |= filter(e.File); };
			_projects.Add(projects);
		}
Example #2
0
 public ProjectVisitor(bool fastLoader, string[] projects, ProjectFileFilter filter)
 {
     _fastLoader = fastLoader;
     _projects   = new FileList();
     _projects.ProhibitedAttributes = FileAttributes.Hidden;
     _projects.FileFound           += FileFound;
     if (filter != null)
     {
         _projects.FileFound += delegate(object o, FileList.FileFoundEventArgs e) { e.Ignore |= filter(e.File); }
     }
     ;
     _projects.Add(projects);
 }
        public void ConfigureParametersByTemplateTest()
        {
            string projectDirPath = @"C:\Users\ITQ2CS\rtc_sandbox\rbd_briBk10_gly_sw_Development_RWS_Hansong_Dev\rbd";
            var    pathAll        = ProjectFileFilter.SearchForDirectory(projectDirPath, false,
                                                                         new List <string> ()
            {
                @"\\[\S]+\.arxml$"
            },
                                                                         new List <string> ()
            {
                @"\\generated\\",
                @"\\pf\\",
            });
            List <AR_PackageBase> packageList = new List <AR_PackageBase> ();
            List <ElementBase>    elementList = new List <ElementBase> ();
            // LoadElements
            var list = pathAll
                       .Select(path => new { ELE = XElement.Parse(File.ReadAllText(path)), FilePath = path })
                       .SelectMany(ele => AR_PackageBase.ReadArxmlFileRoot(ele.ELE, ele.FilePath))
                       //.Where (ele => ele != null)
                       .ToList();
            //watching the change of xml
            StringBuilder changList = new StringBuilder();

            changList.AppendJoin(',', "Package File", "Operation Target", "Operation Type", "Parameter Type", "Parameter Def", "Parameter Value", "\n");
            foreach (var packageRoot in list)
            {
                packageRoot.AR_PackageArxml.Changed += (sender, e) =>
                {
                    packageRoot.IsChanged = true;
                    var element = sender as XElement;
                    //search element until find ECUC container
                    var parent    = element;
                    var parameter = element;
                    while (parent != null && parent.Name.LocalName != "ECUC-CONTAINER-VALUE")
                    {
                        parent = parent.Parent;
                    }
                    while (parameter != null && !parameter.Name.LocalName.Contains("PARAM-VALUE"))
                    {
                        if (parameter.Parent != null)
                        {
                            parameter = parameter.Parent;
                        }
                        else
                        {
                            parameter = null;
                            break;
                        }
                    }
                    changList.AppendJoin(',',
                                         packageRoot.FilePath.Split("\\").Last(),
                                         parent?.Element(XName.Get("SHORT-NAME", parent.Name.Namespace.NamespaceName))?.Value,
                                         e.ObjectChange.ToString(),
                                         parameter?.Name.LocalName,
                                         parent == null? "" : parameter?.Element(XName.Get("DEFINITION-REF", parameter.Name.NamespaceName))?.Value,
                                         parameter?.Element(XName.Get("VALUE", parameter.Name.NamespaceName))?.Value,
                                         "\n");
                };
                AR_PackageBase.GetAllARPackagesAndElements(packageRoot, packageList, elementList);
            }

            ComStackParametersDealer.ConfigureArxmlUsingDBCFiles(DBCFileParser.ParserNodes(DBCText).Where(elementList => elementList.NodeName.Equals("ED")).First(), elementList);
            //try to save and replace and backup files
            foreach (var packageRoot in list.Where(package => package.IsChanged))
            {
                File.Copy(packageRoot.FilePath, packageRoot.FilePath + "." + DateTime.Now.ToString("yyyy-MM-dd-HH-mm-ss") + "-BAK");
                var xml = packageRoot.AR_PackageArxml;
                while (xml.Parent != null)
                {
                    xml = xml.Parent;
                }
                xml.Save(packageRoot.FilePath);
            }

            //ComStackParametersDealer.ConfigureArxmlUsingDBCFiles()
            // Assert.Equal (10, pathAll.Length);
            // string logPath = FileSysHelper.GetCurrentAppLocationPath () + "\\ChangLists\\"; //
            // if (!Directory.Exists (logPath))
            // {
            //     Directory.CreateDirectory (logPath);
            // }
            // using (StreamWriter writer = new StreamWriter (logPath + DateTime.Now.ToString ("yyyy-MM-dd") + ".csv"))
            // {
            //     writer.Write (changList.ToString ());
            // }
        }