public void RefreshPluginsList(bool reload = true) { selectedPackagesId.Clear(); tstSearch.TextChanged -= tstSearch_TextChanged; tstSearch.Text = @"Search by Title or Authors"; tstSearch.ForeColor = SystemColors.InactiveCaption; tstSearch.TextChanged += tstSearch_TextChanged; tstSearch.Enabled = false; lvPlugins.Items.Clear(); tssLabel.Text = @"Retrieving tools from XrmToolBox portal..."; tssProgress.Style = ProgressBarStyle.Marquee; tssProgress.Visible = true; tssPluginsCount.Visible = false; splitContainer1.Panel2Collapsed = true; var bw = new BackgroundWorker(); bw.DoWork += (sender, e) => { allPlugins = 0; newPlugin = 0; updatePlugin = 0; var options = Options.Instance; if (reload) { store.LoadNugetPackages(); } var xtbPackages = store.XrmToolBoxPlugins.Plugins.OrderBy(p => p.Name); var lvic = new List <ListViewItem>(); foreach (var xtbPackage in xtbPackages) { allPlugins++; if (xtbPackage.Action == PackageInstallAction.Unavailable && options.PluginsStoreShowIncompatible.HasValue && options.PluginsStoreShowIncompatible.Value == false) { continue; } if (xtbPackage.Action == PackageInstallAction.Install) { newPlugin++; if (options.PluginsStoreShowNew.HasValue && options.PluginsStoreShowNew.Value == false) { continue; } } if (xtbPackage.Action == PackageInstallAction.Update) { updatePlugin++; if (options.PluginsStoreShowUpdates.HasValue && options.PluginsStoreShowUpdates.Value == false) { continue; } } if (xtbPackage.Action == PackageInstallAction.None && options.PluginsStoreShowInstalled.HasValue && options.PluginsStoreShowInstalled.Value == false) { continue; } lvic.Add(xtbPackage.GetPluginsStoreItem()); } e.Result = lvic; }; bw.RunWorkerCompleted += (sender, e) => { tssProgress.Visible = false; tssLabel.Text = string.Empty; tstSearch.Enabled = true; if (e.Error != null) { MessageBox.Show(this, $@"An error occured when refreshing list: {e.Error.Message}", @"Error", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } var items = (List <ListViewItem>)e.Result; tssPluginsCount.Text = $@"Tools: {allPlugins} / New: {newPlugin} / Updates: {updatePlugin}"; tssPluginsCount.Visible = true; lvPlugins.Items.AddRange(items.ToArray()); }; bw.RunWorkerAsync(); }
public void RefreshPluginsList(bool reload = true) { selectedPackagesId.Clear(); tstSearch.Enabled = false; lvPlugins.Items.Clear(); tssLabel.Text = @"Retrieving tools from XrmToolBox portal..."; tssProgress.Style = ProgressBarStyle.Marquee; tssProgress.Visible = true; tssPluginsCount.Visible = false; splitContainer1.Panel2Collapsed = true; var bw = new BackgroundWorker(); bw.DoWork += (sender, e) => { allPlugins = 0; newPlugin = 0; updatePlugin = 0; var options = Options.Instance; if (reload) { store.LoadNugetPackages(); } var xtbPackages = store.XrmToolBoxPlugins.Plugins.OrderBy(p => p.Name); lvic = new List <ListViewItem>(); foreach (var xtbPackage in xtbPackages) { allPlugins++; lvic.Add(xtbPackage.GetPluginsStoreItem()); if (xtbPackage.Action == PackageInstallAction.Install) { newPlugin++; } else if (xtbPackage.Action == PackageInstallAction.Update) { updatePlugin++; } } }; bw.RunWorkerCompleted += (sender, e) => { tssProgress.Visible = false; tssLabel.Text = string.Empty; tstSearch.Enabled = true; if (e.Error != null) { MessageBox.Show(this, $@"An error occured when refreshing list: {e.Error.Message}", @"Error", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } tssPluginsCount.Text = $@"Tools: {allPlugins} / New: {newPlugin} / Updates: {updatePlugin}"; tssPluginsCount.Visible = true; LoadCategories(); FilterPlugins(tstSearch.Text == tstSearch.Tag?.ToString() ? string.Empty : tstSearch.Text); }; bw.RunWorkerAsync(); }