protected override void Execute(CodeActivityContext context)
        {
            var shownewfolderbutton = ShowNewFolderButton.Get(context);
            var rootfolder          = RootFolder.Get(context);
            var folderBrowserDialog = new System.Windows.Forms.FolderBrowserDialog();

            folderBrowserDialog.ShowNewFolderButton = shownewfolderbutton;
            if (string.IsNullOrEmpty(rootfolder))
            {
                rootfolder = Environment.SpecialFolder.Desktop.ToString();
            }
            Enum.TryParse(rootfolder, out Environment.SpecialFolder specialfolder);
            folderBrowserDialog.RootFolder = specialfolder;
            System.Windows.Forms.DialogResult result = System.Windows.Forms.DialogResult.Cancel;
            GenericTools.RunUI(() =>
            {
                result = folderBrowserDialog.ShowDialog();
            });
            if (result != System.Windows.Forms.DialogResult.OK)
            {
                context.SetValue(Folder, null);
                return;
            }
            context.SetValue(Folder, folderBrowserDialog.SelectedPath);
        }