public override void SetMoveOperations(string folder, UtilSettings utilSettings)
        {
            try
            {
                string extFolder = ExtensionLoader.DefaultExtensionsFolder;

                if (System.IO.Directory.Exists(folder))
                {
                    ExtensionLoader loader       = new ExtensionLoader();
                    ExtensionFolder loaderFolder = new ExtensionFolder(folder, ExtensionFolder.SearchTypeEnum.OneLevelOnly, false);
                    loader.SetExtensionFolders(loaderFolder.ToSingleArray());

                    List <string> validExtensions = new List <string>();

                    ICollection <Extension <Autodesk.Connectivity.Explorer.Extensibility.IExplorerExtension> > extensions1 =
                        loader.FindExtensions <Autodesk.Connectivity.Explorer.Extensibility.IExplorerExtension>();
                    foreach (Extension ext in extensions1)
                    {
                        validExtensions.Add(System.IO.Directory.GetParent(ext.Location).FullName);
                    }

                    ICollection <Extension <Autodesk.Connectivity.WebServices.IWebServiceExtension> > extensions2 =
                        loader.FindExtensions <Autodesk.Connectivity.WebServices.IWebServiceExtension>();
                    foreach (Extension ext in extensions2)
                    {
                        validExtensions.Add(System.IO.Directory.GetParent(ext.Location).FullName);
                    }

                    ICollection <Extension <Autodesk.Connectivity.JobProcessor.Extensibility.IJobHandler> > extensions3 =
                        loader.FindExtensions <Autodesk.Connectivity.JobProcessor.Extensibility.IJobHandler>();
                    foreach (Extension ext in extensions3)
                    {
                        validExtensions.Add(System.IO.Directory.GetParent(ext.Location).FullName);
                    }

                    //string[] subFolders = System.IO.Directory.GetDirectories(folder);
                    foreach (string subFolder in validExtensions)
                    {
                        string folderName = Path.GetFileName(subFolder);
                        utilSettings.FolderMoveOperations.Add(new FolderMove(
                                                                  subFolder, Path.Combine(extFolder, folderName)));
                    }
                }
            }
            catch
            { }
        }
        private void TryParseLocationFromStack(GenericTest test, out string path, out int line)
        {
            // First line is the error message
            // Then there's one line of our framework; but just to be a bit more future-proof, exclude any that look like extension
            var matchingLine = test.ErrorStackTrace.Split('\n').Skip(1).FirstOrDefault(l => !l.ToLower().Contains(ExtensionFolder.ToLower()));

            var match = Regex.Match(matchingLine, @"\((.+):(\d+):\d+\)");

            if (match.Groups.Count >= 3)
            {
                path = match.Groups[1].Value;
                line = int.Parse(match.Groups[2].Value);
            }
            else
            {
                path = null;
                line = 0;
            }
        }
Beispiel #3
0
        private void TryParseLocationFromStack(GenericTest test, out string path, out int line)
        {
            // First line is the error message
            // Then there's one line of our framework; but just to be a bit more future-proof, exclude any that look like extension
            var possibleLines = test.ErrorStackTrace.Split('\n').Skip(1).Where(l => !l.ToLower().Contains(ExtensionFolder.ToLower()));

            foreach (var matchingLine in possibleLines)
            {
                var match = Regex.Match(matchingLine, @"\((.+):(\d+):\d+\)", RegexOptions.Compiled);

                if (match.Groups.Count >= 3)
                {
                    path = match.Groups[1].Value.Replace("/", @"\");
                    line = int.Parse(match.Groups[2].Value);
                    return;
                }
            }

            path = null;
            line = 0;
        }