public void Save(IPlugin plugin)
        {
            oxite_Plugin foundPlugin = plugin.ID != Guid.Empty ? (
                from p in context.oxite_Plugins
                where p.SiteID == siteID && p.PluginID == plugin.ID
                select p
                ).FirstOrDefault() : null;

            if (foundPlugin != null)
            {
                foundPlugin.PluginName     = plugin.Name;
                foundPlugin.PluginCategory = plugin.Category;
                foundPlugin.Enabled        = plugin.Enabled;
                //TODO: (erikpo) Add new fields here
            }
            else
            {
                context.oxite_Plugins.InsertOnSubmit(
                    new oxite_Plugin()
                {
                    SiteID         = siteID,
                    PluginID       = plugin.ID != Guid.Empty ? plugin.ID : Guid.NewGuid(),
                    PluginName     = plugin.Name,
                    PluginCategory = plugin.Category,
#if DEBUG
                    Enabled = false
#else
                    Enabled = true
#endif
                              //TODO: (erikpo) Add new fields here
                }
 private IQueryable <oxite_PluginSetting> getPluginSettings(oxite_Plugin plugin)
 {
     return
         (from ps in context.oxite_PluginSettings
          where ps.SiteID == siteID && ps.PluginID == plugin.PluginID
          select ps);
 }
        public void Save(IBackgroundService backgroundService, NameValueCollection settings)
        {
            oxite_Plugin foundPlugin = backgroundService.ID != Guid.Empty ? (
                from p in context.oxite_Plugins
                where p.SiteID == siteID && p.PluginID == backgroundService.ID
                select p
                ).FirstOrDefault() : null;

            if (foundPlugin != null)
            {
                foundPlugin.PluginName     = backgroundService.Name;
                foundPlugin.PluginCategory = backgroundService.Category;
                foundPlugin.Enabled        = backgroundService.Enabled;
                //TODO: (erikpo) Add new fields here
            }
            else
            {
                context.oxite_Plugins.InsertOnSubmit(
                    new oxite_Plugin()
                {
                    SiteID         = siteID,
                    PluginID       = backgroundService.ID != Guid.Empty ? backgroundService.ID : Guid.NewGuid(),
                    PluginName     = backgroundService.Name,
                    PluginCategory = backgroundService.Category,
                    Enabled        = backgroundService.Enabled
                                     //TODO: (erikpo) Add new fields here
                }
                    );
            }

            if (settings != null)
            {
                foreach (string name in settings.AllKeys)
                {
                    oxite_PluginSetting setting = getSetting(backgroundService.ID, name);

                    if (setting != null)
                    {
                        setting.PluginSettingValue = settings[name];
                    }
                    else
                    {
                        context.oxite_PluginSettings.InsertOnSubmit(
                            new oxite_PluginSetting()
                        {
                            SiteID             = siteID,
                            PluginID           = backgroundService.ID,
                            PluginSettingName  = name,
                            PluginSettingValue = settings[name]
                        }
                            );
                    }
                }

                //TODO: (erikpo) Cleanup settings that aren't needed anymore
            }

            context.SubmitChanges();
        }
        public void Save(IPlugin plugin, NameValueCollection settings)
        {
            oxite_Plugin foundPlugin = (
                from p in context.oxite_Plugins
                where p.SiteID == siteID && p.PluginID == plugin.ID
                select p
                ).FirstOrDefault();

            if (foundPlugin != null)
            {
                foundPlugin.PluginName     = plugin.Name;
                foundPlugin.PluginCategory = plugin.Category;
                foundPlugin.Enabled        = plugin.Enabled;
            }
            else
            {
                context.oxite_Plugins.InsertOnSubmit(
                    new oxite_Plugin()
                {
                    SiteID         = siteID,
                    PluginID       = plugin.ID,
                    PluginName     = plugin.Name,
                    PluginCategory = plugin.Category,
                    Enabled        = plugin.Enabled
                }
                    );
            }

            if (settings != null)
            {
                foreach (string name in settings.AllKeys)
                {
                    oxite_PluginSetting setting = getSetting(plugin.ID, name);

                    if (setting != null)
                    {
                        setting.PluginSettingValue = settings[name];
                    }
                    else
                    {
                        context.oxite_PluginSettings.InsertOnSubmit(
                            new oxite_PluginSetting()
                        {
                            SiteID             = siteID,
                            PluginID           = plugin.ID,
                            PluginSettingName  = name,
                            PluginSettingValue = settings[name]
                        }
                            );
                    }
                }

                //TODO: (erikpo) Cleanup settings that aren't needed anymore
            }

            context.SubmitChanges();
        }
        public void SetEnabled(Guid siteID, Guid pluginID, bool enabled)
        {
            oxite_Plugin plugin = context.oxite_Plugins.FirstOrDefault(p => p.SiteID == siteID && p.PluginID == pluginID);

            if (plugin != null)
            {
                plugin.Enabled = enabled;

                context.SubmitChanges();
            }
        }
示例#6
0
        public void SetEnabled(Plugin plugin, bool enabled)
        {
            oxite_Plugin foundPlugin = context.oxite_Plugins.FirstOrDefault(p => p.SiteID == siteID && p.PluginID == plugin.ID);

            if (foundPlugin == null)
            {
                return;
            }

            foundPlugin.Enabled = enabled;

            context.SubmitChanges();
        }
示例#7
0
        public void Remove(Plugin plugin)
        {
            oxite_Plugin foundPlugin = context.oxite_Plugins.FirstOrDefault(p => p.SiteID == siteID && p.PluginID == plugin.ID);

            if (foundPlugin == null)
            {
                return;
            }

            removeExtendedProperties(context, siteID, new IExtendedPropertyStore[] { new ExtendedPropertyStoreBlank(typeof(Plugin).FullName, plugin.ID.ToString("N")) });

            context.oxite_Plugins.DeleteOnSubmit(foundPlugin);

            context.SubmitChanges();
        }
        public void Remove(Guid siteID, Guid pluginID)
        {
            oxite_Plugin plugin = (
                from p in context.oxite_Plugins
                where p.SiteID == siteID && p.PluginID == pluginID
                select p
                ).FirstOrDefault();

            if (plugin != null)
            {
                removeExtendedProperties(context, siteID, new IExtendedPropertyStore[] { new ExtendedPropertyStoreBlank(typeof(Plugin).FullName, pluginID.ToString("N")) });

                context.oxite_Plugins.DeleteOnSubmit(plugin);

                context.SubmitChanges();
            }
        }
        public Plugin Save(Plugin plugin)
        {
            oxite_Plugin pluginToSave = null;

            if (plugin.ID != Guid.Empty)
            {
                pluginToSave = context.oxite_Plugins.FirstOrDefault(p => p.SiteID == plugin.Site.ID && p.PluginID == plugin.ID);
            }

            if (pluginToSave == null)
            {
                pluginToSave = new oxite_Plugin();

                pluginToSave.SiteID      = plugin.Site.ID;
                pluginToSave.PluginID    = plugin.ID != Guid.Empty ? plugin.ID : Guid.NewGuid();
                pluginToSave.VirtualPath = plugin.VirtualPath;

                context.oxite_Plugins.InsertOnSubmit(pluginToSave);
            }

            pluginToSave.Enabled = plugin.Enabled;

            IExtendedPropertyStore[] extendedPropertiesScope = new IExtendedPropertyStore[] { new ExtendedPropertyStoreBlank(typeof(Plugin).FullName, pluginToSave.PluginID.ToString("N")) };

            //TODO: (erikpo) Change the following to better "sync" the extended properties instead of just wiping them and re-adding them.

            removeExtendedProperties(context, plugin.Site.ID, extendedPropertiesScope);

            context.SubmitChanges();

            foreach (ExtendedProperty extendedProperty in plugin.ExtendedProperties)
            {
                saveExtendedProperties(context, plugin.Site.ID, extendedProperty.Name, extendedProperty.Type, extendedProperty.Value, extendedPropertiesScope);
            }

            context.SubmitChanges();

            return(GetPlugin(pluginToSave.SiteID, pluginToSave.PluginID));
        }
 private Plugin projectPlugin(Guid siteID, oxite_Plugin plugin)
 {
     return(new Plugin(plugin.SiteID, plugin.PluginID, plugin.VirtualPath, plugin.Enabled, getExtendedProperties(context, siteID, new IExtendedPropertyStore[] { new ExtendedPropertyStoreBlank(typeof(Plugin).FullName, plugin.PluginID.ToString("N")) })));
 }