public List<PackageInfo> Process(string pathToStructureFile)
        {
            //{PackageName}/{OS_Name}/tags/{Version_Name}/metadata.xml || {PackageFileName}
            //{PackageName}/{OS_Name}/trunk/metadata.xml || {PackageFileName}
            var data = File.ReadLines(pathToStructureFile).Where(x => !string.IsNullOrEmpty(x)).
                Select(x => x.Split('/').Where(y => !(string.IsNullOrEmpty(y) || string.IsNullOrWhiteSpace(y))).Select(y => y.Trim()).ToArray())
                .Where(x => ((x.Count() == 5 && x[2] == "tags") || (x.Count() == 4 && x[2] == "trunk")) && x.Last() != "metadata.xml");

            var buffer = new Dictionary<string, PackageInfo>();

            foreach (var repPath in data)
            {
                var pinfo = CommonDataTypes.Utility.Utility.GetOrCreate(buffer, repPath[0], new PackageInfo(){ PackageName = repPath[0]});

                var list = CommonDataTypes.Utility.Utility.GetOrCreate(pinfo.VersionedInstances, repPath[1],
                    new List<PackageInfo.NamedInstance>());

                var nInst = new PackageInfo.NamedInstance();
                list.Add(nInst);

                if (repPath[2] == "tags")
                {
                    nInst.VersionName = repPath[3];
                    nInst.FileName = repPath[4];
                }
                else
                {
                    nInst.VersionName = null;
                    nInst.FileName = repPath[3];
                }
            }

            return buffer.Values.ToList();
        }
Exemplo n.º 2
0
        public void ProccessTest()
        {
            IMetadataProccessor xmlProccessor = new XmlMetadataProcessor();

            var buf = new PackageInfo.NamedInstance();

            xmlProccessor.Process(path, buf);

            Assert.IsTrue(buf.Metadata.FolderToInstall == pathToInstall);
        }
Exemplo n.º 3
0
        public void Process(string filePath, PackageInfo.NamedInstance inst)
        {
            var doc = XDocument.Load(filePath);

            inst.Metadata = new PackageInfo.MetaData();
            var pathToInstall = doc.Root.Element("PathToInstall");

            if (pathToInstall != null)
            {
                inst.Metadata.FolderToInstall = pathToInstall.Value;
            }
        }
Exemplo n.º 4
0
        public List <PackageInfo> Process(string pathToStructureFile)
        {
            //{PackageName}/{OS_Name}/tags/{Version_Name}/metadata.xml || {PackageFileName}
            //{PackageName}/{OS_Name}/trunk/metadata.xml || {PackageFileName}
            var data = File.ReadLines(pathToStructureFile).Where(x => !string.IsNullOrEmpty(x)).
                       Select(x => x.Split('/').Where(y => !(string.IsNullOrEmpty(y) || string.IsNullOrWhiteSpace(y))).Select(y => y.Trim()).ToArray())
                       .Where(x => ((x.Count() == 5 && x[2] == "tags") || (x.Count() == 4 && x[2] == "trunk")) && x.Last() != "metadata.xml");


            var buffer = new Dictionary <string, PackageInfo>();

            foreach (var repPath in data)
            {
                var pinfo = CommonDataTypes.Utility.Utility.GetOrCreate(buffer, repPath[0], new PackageInfo()
                {
                    PackageName = repPath[0]
                });

                var list = CommonDataTypes.Utility.Utility.GetOrCreate(pinfo.VersionedInstances, repPath[1],
                                                                       new List <PackageInfo.NamedInstance>());

                var nInst = new PackageInfo.NamedInstance();
                list.Add(nInst);

                if (repPath[2] == "tags")
                {
                    nInst.VersionName = repPath[3];
                    nInst.FileName    = repPath[4];
                }
                else
                {
                    nInst.VersionName = null;
                    nInst.FileName    = repPath[3];
                }
            }

            return(buffer.Values.ToList());
        }