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);
            }
            );
        }
示例#9
0
        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;
        }
示例#10
0
 public void InstallPlugin(PluginItem plugin)
 {
     Async.Queue("Plugin Update", () => new Updater(this).UpdatePlugin(plugin, "Installing"));
 }
示例#11
0
 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));
 }
示例#13
0
        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");
 }