static RefreshableComponent ParseRefreshableComponents(string refreshList) { if (String.IsNullOrEmpty(refreshList)) { return(RefreshableComponent.All); } if (refreshList.IndexOf(',') == -1) { return(ParseSingleComponent(refreshList)); } var allParsedComponents = RefreshableComponent.None; var refreshListArray = refreshList.Split(','); foreach (var c in refreshListArray) { RefreshableComponent parsed = ParseSingleComponent(c); if (parsed != RefreshableComponent.None) { allParsedComponents |= parsed; } } return(allParsedComponents); RefreshableComponent ParseSingleComponent(string component) { if (String.Compare("sdk", component, StringComparison.OrdinalIgnoreCase) == 0) { return(RefreshableComponent.AndroidSDK); } if (String.Compare("ndk", component, StringComparison.OrdinalIgnoreCase) == 0) { return(RefreshableComponent.AndroidNDK); } return(RefreshableComponent.None); } }
public ToolboxNode(bool isEdgeServerRoleOnly) : base(true) { ToolboxNode < > 4__this = this; base.DisplayName = Strings.Toolbox; base.Icon = Icons.Toolbox; base.HelpTopic = HelpId.ToolboxNode.ToString(); base.ViewDescriptions.Add(ExchangeFormView.CreateViewDescription(typeof(ToolboxResultPane))); RefreshableComponent refreshableComponent = new RefreshableComponent(); base.DataSource = refreshableComponent; refreshableComponent.DoRefreshWork += delegate(object sender, RefreshRequestEventArgs e) { DataList <Tool> dataList = new DataList <Tool>(); DataProvider dataProvider = new RegistryDataProvider(Registry.LocalMachine, "SOFTWARE\\Microsoft\\ExchangeServer\\v15\\AdminTools\\Toolbox", ConfigurationContext.Setup.InstallPath); dataProvider.Query(); for (int i = 0; i < dataProvider.Tools.Count; i++) { Tool tool = dataProvider.Tools[i]; if (tool.Name != string.Empty && Tool.IsToolDuplicate(dataList, tool)) { tool.ValidTool = false; tool.AddErrorMessage(Strings.DuplicateTool(tool.DataSource)); } else if (!isEdgeServerRoleOnly || !tool.NonEdgeTool) { dataList.Add(tool); } } e.Result = dataList; }; refreshableComponent.RefreshCompleted += delegate(object sender, RunWorkerCompletedEventArgs e) { if (e.Cancelled) { return; } DataList <Tool> dataList = (DataList <Tool>)e.Result; this.ValidTools.Clear(); DataList <Tool> dataList2 = new DataList <Tool>(); for (int i = 0; i < dataList.Count; i++) { if (dataList[i].ValidTool) { this.ValidTools.Add(dataList[i]); } else { dataList2.Add(dataList[i]); } } if (dataList2.Count > 0) { List <WorkUnit> list = new List <WorkUnit>(); for (int j = 0; j < dataList2.Count; j++) { WorkUnit workUnit = new WorkUnit(); workUnit.Text = dataList2[j].DataSource; Exception ex = new Exception(dataList2[j].ErrorMessage); workUnit.Errors.Add(new ErrorRecord(ex, LocalizedException.GenerateErrorCode(ex).ToString("X"), ErrorCategory.InvalidOperation, null)); workUnit.Status = WorkUnitStatus.Failed; list.Add(workUnit); } UIService.ShowError(Strings.ErrorDialogMessage, string.Empty, list.ToArray(), base.ShellUI); } }; }