public override DeploymentContainer DetectItems()
        {
            DeploymentContainer container = new DeploymentContainer("Plug-ins", Key);

            try
            {
                ExtensionLoader  loader  = new ExtensionLoader();
                HashSet <string> folders = new HashSet <string>();

                ICollection <Extension <Autodesk.Connectivity.Explorer.Extensibility.IExplorerExtension> > extensions1 =
                    loader.FindExtensions <Autodesk.Connectivity.Explorer.Extensibility.IExplorerExtension>();
                foreach (Extension ext in extensions1)
                {
                    AddExtension(container, ext, folders);
                }

                ICollection <Extension <Autodesk.Connectivity.WebServices.IWebServiceExtension> > extensions2 =
                    loader.FindExtensions <Autodesk.Connectivity.WebServices.IWebServiceExtension>();
                foreach (Extension ext in extensions2)
                {
                    AddExtension(container, ext, folders);
                }

                ICollection <Extension <Autodesk.Connectivity.JobProcessor.Extensibility.IJobHandler> > extensions3 =
                    loader.FindExtensions <Autodesk.Connectivity.JobProcessor.Extensibility.IJobHandler>();
                foreach (Extension ext in extensions3)
                {
                    AddExtension(container, ext, folders);
                }
            }
            catch
            { }

            return(container);
        }
        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
            { }
        }