Exemplo n.º 1
0
        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);
        }
Exemplo n.º 5
0
 public void RemovePostProcessPlugin(IPostProcessPlugin plugin)
 {
     this.PostProcessPlugins.Remove(plugin);
     SaveToStorage(() => this.PostProcessPlugins, this.PostProcessPlugins);
 }
Exemplo n.º 6
0
 public void RemovePostProcessPlugin(IPostProcessPlugin plugin)
 {
     this.PostProcessPlugins.Remove(plugin);
     SaveToStorage(() => this.PostProcessPlugins, this.PostProcessPlugins);
 }