public void Remove(PluginItem plugin) { if (Items.Remove(plugin)) { Items = new List <PluginItem>(Items); } FirePropertyChanged("Items"); }
/// <summary> /// Not used. /// </summary> /// <param name="plugin"></param> /// <returns></returns> protected string BuildRegisterPage(PluginItem plugin) { var page = "<html>"; page += string.Format("<h1 style='text-align: center'>Testing Register {0}</h1><br/>",plugin.Name); var form = "<form name=\"_xclick\" action=\"https://www.paypal.com/cgi-bin/webscr\" method=\"post\">"; form += "<input type=\"hidden\" name=\"cmd\" value=\"_xclick\">"; form += string.Format("<input type=\"hidden\" id=\"payPalEmail\" name=\"business\" value=\"{0}\">", "*****@*****.**"); form += "<input type=\"hidden\" name=\"currency_code\" value=\"USD\">"; form += string.Format("<input type=\"hidden\" id=\"featureName\" name=\"item_name\" value=\"{0}\">", plugin.FeatureId); form += string.Format("<input type=\"hidden\" id=\"amount\" name=\"amount\" value=\"{0}\">", plugin.Price); form += string.Format("<input type=\"hidden\" id=\"featureId\" name=\"item_number\" value=\"{0}\">", plugin.FeatureId); form += "<input type=\"hidden\" name=\"notify_url\" value=\"http://mb3admin.com/admin/service/services/ppipn.php\">"; form += "<input type=\"hidden\" name=\"return\" value=\"#\">"; form += "<a href=\"#\" onclick=\"$(this).parents('form')[0].submit();\"><img src=\"https://www.paypalobjects.com/en_US/i/btn/btn_buynowCC_LG.gif\" /></a>"; form += "</form>"; page += form; page += "</html>"; return page; }
/// <summary> /// Open the dash in the default browser to the proper plugin page for registration /// </summary> /// <param name="plugin"></param> public void RegisterPlugin(PluginItem plugin) { Async.Queue(Async.ThreadPoolName.Registration, () => { if (YesNoBox("The Registration Page will open in your web browser. You will need a keyboard to complete the transaction. Continue?") == "Y") { Process.Start(Kernel.Instance.DashboardUrl + string.Format("/addplugin.html?name={0}&guid={1}&autosubmit=true",plugin.Name, plugin.GuidString)); } else { MessageBox("You can register with any device via the dashboard at " + Kernel.Instance.DashboardUrl + "/plugincatalog.html"); } }); }
public void RatePlugin(PluginItem plugin, int rating, bool recommend) { Async.Queue(Async.ThreadPoolName.PackageRating, () => Kernel.ApiClient.RatePackage(plugin.Id, rating, recommend)); Information.AddInformationString("Thank you for submitting your rating"); }
public void RemovePlugin(PluginItem plugin) { Async.Queue(Async.ThreadPoolName.PluginRemove, () => { if (YesNoBox("Remove Plug-in "+plugin.Name+" - Are you sure?") == "Y") { try { Logger.ReportInfo("Removing plug-in {0}/{1}",plugin.Name, plugin.TargetFilename); File.Delete(Path.Combine(ApplicationPaths.AppPluginPath, plugin.TargetFilename)); InstalledPluginsCollection.Remove(plugin); // Close the catalog page ShowPluginDetailPage = false; } catch (Exception e) { Logger.ReportException("Error attempting to remove plugin {0}", e, plugin.TargetFilename); Async.Queue(Async.ThreadPoolName.Msg, () => MessageBox("Could not delete plugin " + plugin.Name)); } } }); }
public void InstallPlugin(PluginItem plugin) { Async.Queue(Async.ThreadPoolName.PluginUpdate, () => Updater.UpdatePlugin(plugin, "Installing")); }
public void UpdatePlugin(PluginItem plugin) { Async.Queue(Async.ThreadPoolName.PluginUpdate, () => Updater.UpdatePlugin(plugin)); }
public void RefreshPluginCollections() { Application.UIDeferredInvokeIfRequired(() => { AvailablePluginsCollection = new PluginItemCollection(Packages); var installedPluginItems = new List<PluginItem>(); foreach (var plugin in Kernel.Instance.Plugins) { var current = plugin; var catalogPlugin = AvailablePluginsCollection.Items.FirstOrDefault(i => i.TargetFilename.Equals(current.Filename, StringComparison.OrdinalIgnoreCase)); var installedPlugin = new PluginItem(catalogPlugin != null ? catalogPlugin.Info : new PackageInfo { name = current.Name, overview = current.Description, targetFilename = current.Filename }); installedPlugin.InstalledVersion = current.Version.ToString(); var catalogVersion = catalogPlugin != null ? catalogPlugin.Versions.FirstOrDefault(v => v.version == current.Version) : null; installedPlugin.InstalledVersionClass = catalogVersion != null ? " (" + catalogVersion.classification.ToString() + ")" : ""; if (catalogPlugin != null) { catalogPlugin.InstalledVersion = installedPlugin.InstalledVersion; catalogPlugin.InstalledVersionClass = installedPlugin.InstalledVersionClass; installedPlugin.UpdateAvailable = catalogPlugin.UpdateAvailable = catalogPlugin.ValidVersions.Any(v => v.version > current.Version); } else { installedPlugin.NotInCatalog = true; } installedPluginItems.Add(installedPlugin); } InstalledPluginsCollection = new PluginItemCollection(installedPluginItems); } ); }
public bool UpdatePlugin(PluginItem plugin, string operation = "Updating") { var success = false; _appRef.ProgressBox(operation + " " + plugin.Name + "..."); if (InstallPlugin(new RemotePlugin { SourceFilename = plugin.ValidVersions.OrderBy(v => v.version).Last().sourceUrl, Filename = plugin.TargetFilename })) { plugin.UpdateAvailable = false; plugin.UpdatePending = true; plugin.NotifyPropertiesChanged(); WriteToUpdateLog(String.Format("Plug-in {0} Updated to version {1} by user {2}", plugin.Name, plugin.ValidVersions.OrderBy(v => v.version).Last().versionStr, Kernel.CurrentUser.Name)); success = true; } _appRef.ShowMessage = false; _appRef.InstalledPluginsCollection.ResetUpdatesAvailable(); return success; }
public void InstallPlugin(PluginItem plugin) { Async.Queue("Plugin Update", () => new Updater(this).UpdatePlugin(plugin, "Installing")); }
public void UpdatePlugin(PluginItem plugin) { Async.Queue("Plugin Update", () => new Updater(this).UpdatePlugin(plugin)); }
public void UpdatePlugin(PluginItem plugin) { Async.Queue("Plugin Update", () => Updater.UpdatePlugin(plugin)); }
public bool UpdatePlugin(PluginItem plugin, string operation = "Updating") { var success = false; _appRef.ProgressBox(operation + " " + plugin.Name + "..."); if (InstallPlugin(new RemotePlugin { SourceFilename = plugin.ValidVersions.OrderBy(v => v.version).Last().sourceUrl, Filename = plugin.TargetFilename })) { plugin.UpdateAvailable = false; plugin.UpdatePending = true; plugin.NotifyPropertiesChanged(); success = true; } _appRef.ShowMessage = false; _appRef.InstalledPluginsCollection.ResetUpdatesAvailable(); return success; }
public void Remove(PluginItem plugin) { if (Items.Remove(plugin)) Items = new List<PluginItem>(Items); FirePropertyChanged("Items"); }