private PluginPackage MakePluginPackage(Plugin plugin, byte[] pluginPackage) { var package = new PluginPackage(); package.Data = pluginPackage; package.PluginId = plugin.Id; return package; }
private IEnumerable<Plugin> GetDependencies(DeploymentDataContext ctx, Plugin plugin) { return from pair in ctx.Dependencies from dependency in ctx.Plugins where pair.PluginId == plugin.Id where pair.DependencyId == dependency.Id select dependency; }
private PluginDescription MakePluginDescription(DeploymentDataContext ctx, Plugin plugin) { if (!pluginDescriptions.ContainsKey(plugin.Id)) { // no cached description -> create new var desc = new PluginDescription(plugin.Name, new Version(plugin.Version)); pluginDescriptions[plugin.Id] = desc; // and add to cache // fill remaining properties of plugin description desc.Dependencies = new List<PluginDescription>(from dep in GetDependencies(ctx, plugin) select MakePluginDescription(ctx, dep)); desc.ContactEmail = plugin.ContactEmail ?? string.Empty; desc.ContactName = plugin.ContactName ?? string.Empty; desc.LicenseText = plugin.License ?? string.Empty; } return pluginDescriptions[plugin.Id]; }
private Plugin MakePluginFromDescription(PluginDescription pluginDescription) { var plugin = new Plugin(); plugin.Name = pluginDescription.Name; plugin.Version = pluginDescription.Version.ToString(); plugin.ContactName = pluginDescription.ContactName; plugin.ContactEmail = pluginDescription.ContactEmail; plugin.License = pluginDescription.LicenseText; return plugin; }
private void DeleteOldDependencies(DeploymentDataContext ctx, Plugin pluginEntity) { var oldDependencies = (from dep in ctx.Dependencies where dep.PluginId == pluginEntity.Id select dep).ToList(); ctx.Dependencies.DeleteAllOnSubmit(oldDependencies); ctx.SubmitChanges(); }
private void UpdatePlugin(DeploymentDataContext ctx, Plugin pluginEntity, PluginDescription pluginDescription) { // update plugin data pluginEntity.License = pluginDescription.LicenseText; pluginEntity.ContactName = pluginDescription.ContactName; pluginEntity.ContactEmail = pluginDescription.ContactEmail; // delete cached entry if (pluginDescriptions.ContainsKey(pluginEntity.Id)) pluginDescriptions.Remove(pluginEntity.Id); DeleteOldDependencies(ctx, pluginEntity); foreach (var dependency in pluginDescription.Dependencies) { var dependencyEntity = GetExistingPlugin(ctx, dependency.Name, dependency.Version); Dependency d = new Dependency(); d.PluginId = pluginEntity.Id; d.DependencyId = dependencyEntity.Id; ctx.Dependencies.InsertOnSubmit(d); } }
partial void DeletePlugin(Plugin instance);
partial void UpdatePlugin(Plugin instance);
partial void InsertPlugin(Plugin instance);