public IPostProcessPlugin AddPostProcessPlugin(Type pluginType) { IPostProcessPlugin plugin = Activator.CreateInstance(pluginType, new object[] { Table.Database.AddTable(), Logger, Runtime }) as IPostProcessPlugin; this.PostProcessPlugins.Add(plugin); SaveToStorage(() => this.PostProcessPlugins, this.PostProcessPlugins); return(plugin); }
private void btnUp_Click(object sender, EventArgs e) { IPostProcessPlugin itemToMove = lbSelected.SelectedItem as IPostProcessPlugin; int selectedIndex = lbSelected.SelectedIndex; _profile.PostProcessPlugins.Move(selectedIndex, selectedIndex - 1); lbSelected.SelectedIndex = selectedIndex - 1; PluginsChanged(); }
public bool Post(DeletePluginRequest request) { PluginResponse response = new PluginResponse(); Profile profile = (from p in Program.Runtime.Setup.Profiles where p.Id == request.ProfileId select p).FirstOrDefault(); if (request.Id == 0) { return(true); } bool updated = false; switch (request.PluginType) { case 4: IPostProcessPlugin postProcessPlugin = profile.PostProcessPlugins.Where(l => l.Id == request.Id).FirstOrDefault() as IPostProcessPlugin; if (postProcessPlugin != null) { profile.PostProcessPlugins.Remove(postProcessPlugin); updated = true; } break; case 5: IPreOutputPlugin preOutputPlugin = profile.PreOutputPlugins.Where(l => l.Id == request.Id).FirstOrDefault() as IPreOutputPlugin; if (preOutputPlugin != null) { profile.PreOutputPlugins.Remove(preOutputPlugin); updated = true; } break; case 6: IOutputPlugin outputPlugin = profile.OutputPlugins.Where(l => l.Id == request.Id).FirstOrDefault() as IOutputPlugin; if (outputPlugin != null) { profile.OutputPlugins.Remove(outputPlugin); updated = true; } break; default: break; } if (updated) { Program.Runtime.Save(); } return(true); }
private ObservableCollection <IPostProcessPlugin> GetLookupValues() { PropertyInfo prop = _profile.GetType().GetProperties().Where(p => p.Name == "PostProcessPlugins").FirstOrDefault(); ConfigTableAttribute configAttribute = Attribute.GetCustomAttribute(prop, typeof(ConfigTableAttribute)) as ConfigTableAttribute; Type pluginType = _profile.GetType(); Type propertyType = prop.PropertyType; IEnumerable <Type> availableValues = null; if (configAttribute.RetrieveValuesFrom != null) { var member = pluginType.GetMember(configAttribute.RetrieveValuesFrom); if (member.Length > 0) { if (member[0].MemberType == MemberTypes.Method) { MethodInfo mi = pluginType.GetMethod(configAttribute.RetrieveValuesFrom); var propertyValue = mi.Invoke(_profile, null); availableValues = propertyValue as IEnumerable <Type>; } } } ObservableCollection <IPostProcessPlugin> result = new ObservableCollection <IPostProcessPlugin>(); foreach (Type item in availableValues) { IPostProcessPlugin plugin = Activator.CreateInstance(item) as IPostProcessPlugin; result.Add(plugin); } return(result); }
public void RemovePostProcessPlugin(IPostProcessPlugin plugin) { this.PostProcessPlugins.Remove(plugin); SaveToStorage(() => this.PostProcessPlugins, this.PostProcessPlugins); }
public void RemovePostProcessPlugin(IPostProcessPlugin plugin) { this.PostProcessPlugins.Remove(plugin); SaveToStorage(() => this.PostProcessPlugins, this.PostProcessPlugins); }