Exemple #1
0
        private void InitializePlugins()
        {
            try
            {
                _plugins = PluginsLoader.Load();
            }
            catch (Exception)
            {
                MessageBox.Show("Cannot load plugins.");
            }

            if (_plugins.Any())
            {
                toolStrip.Items.Add(new ToolStripSeparator());
            }

            _plugins.ToList().ForEach(plugin =>
            {
                var button    = plugin.AddButton(toolStrip);
                button.Click += (sender, args) =>
                {
                    plugin.Execute(drawingArea.Shapes);
                    drawingArea.Invalidate();
                };
            });
        }
        private Dictionary <string, Type> LoadPlugins()
        {
            var loadedSchemas = new Dictionary <string, Type>();

            var types = new List <Type>();

            types.AddRange(PluginsLoader.LoadDllBasedSchemas());

            foreach (var type in types)
            {
                try
                {
                    var schema = (ISchema)Activator.CreateInstance(type);
                    loadedSchemas.TryAdd($"#{schema.Name.ToLowerInvariant()}", type);
                }
                catch (Exception e)
                {
                    if (Configuration.DebugInfo)
                    {
                        System.Console.WriteLine(e);
                    }
                }
            }

            return(loadedSchemas);
        }
        // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
        public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
        {
            if (env.IsDevelopment())
            {
                app.UseDeveloperExceptionPage();
                PluginsLoader.UseDebug();
            }

            app.UseHttpsRedirection();
            app.UseRouting();
            app.UseAuthorization();
            app.UseEndpoints(endpoints => { endpoints.MapControllers(); });
        }
Exemple #4
0
        public ApplicationViewModel()
        {
            addMaterialsView        = new AddMaterialsViewModel();
            editJewelryView         = new EditJewelryViewModel(addMaterialsView, () => EditJewelry_MaterialEdited(), () => EditJewelry_EditMaterial());
            CurrentJewelryMaterials = new List <Material>();
            JewelryList             = new List <Jewelry>();
            JewelryListUI           = new ObservableCollection <Jewelry>();
            jewelryFactory          = new JewelryFactory();
            materialsFactory        = new MaterialsFactory();
            Plugins = PluginsLoader <IJewelryEncodingPlugin> .Load();

            serializersFactory = new JewelrySerializersFactory();
        }
Exemple #5
0
        protected override void Start()
        {
            base.Start();
            _label.text = $"{Plugin.DisplayName} (v{Plugin.GetVersion()})";
            _descriptionLabel.SetLocalizedText(Plugin.Description);

            _toggle.OnValueChangedAsObservable()
            .Where(state => state)
            .Subscribe(_ => PluginsLoader.EnablePlugin(Plugin));
            _toggle.OnValueChangedAsObservable()
            .Where(state => !state)
            .Subscribe(_ => PluginsLoader.DisablePlugin(Plugin));
        }
                public GeneratorsManager()
                {
                    var nonGenericLoader = new PluginsLoader <INonGenericGenerator>(PLUGINS_PATH);
                    var genericLoader    = new PluginsLoader <IGenericGenerator>(PLUGINS_PATH);
                    List <INonGenericGenerator> nonGenericGenerators = nonGenericLoader.Load();

                    nonGenericGenerators.Add(new PrimitiveGenerator());
                    List <IGenericGenerator> genericGenerators = genericLoader.Load();
                    List <IGenerator>        tempGenerators    = new List <IGenerator>();

                    tempGenerators.AddRange(nonGenericGenerators);
                    tempGenerators.AddRange(genericGenerators);
                    GeneratorsManager generatorsManager = new GeneratorsManager(tempGenerators);

                    foreach (var generic in genericGenerators)
                    {
                        generic.SetGeneratorsManager(generatorsManager);
                    }
                    generators = new List <IGenerator>();
                    generators.AddRange(nonGenericGenerators);
                    generators.AddRange(genericGenerators);
                }