Ejemplo n.º 1
0
        public void LoadPlugin(string pluginPath)
        {
            bool             found      = false;
            PlugInController controller = new PlugInController(_context);
            Assembly         assembly   = Assembly.LoadFile(pluginPath);

            foreach (Type type in assembly.GetTypes())
            {
                if (type.IsSubclassOf(typeof(PlugInstaller)))
                {
                    Console.WriteLine("Install {0}", type.Name);
                    PlugInstaller installer = (PlugInstaller)Activator.CreateInstance(type);

                    installer.RegisterPlug(_context);
                    found = true;
                }
            }
            if (found == false)
            {
                Console.WriteLine("No plugins found in {0}", pluginPath);
            }
            else
            {
            }
        }
Ejemplo n.º 2
0
        private void button3_Click(object sender, EventArgs e)
        {
            SqlTransactionContext context = new SqlTransactionContext();

            //context.Connection = new SqlConnection("server=stranger;database=ASH_Trainings_RemoteAdmin;uid=sa;pwd=1");
            context.Connection = new SqlConnection("server=localhost;database=ASH_Trainings_RemoteAdmin;uid=sa;pwd=1");
            PlugInController controller = new PlugInController(context);

            controller.Delete(this.propertyGrid1.SelectedObject as PlugIn);
        }
Ejemplo n.º 3
0
        public override void RegisterPlug(ITransactionContext context)
        {
            Console.WriteLine("Installing AbstractUI.Context");
            FileTransaction trans = new FileTransaction();

            trans.BeginTransaction();

            PlugLocationFactory plugLocFactory = PlugLocationFactory.GetInstance();

            plugLocFactory.Context = context as ISqlTransactionContext;
            string EXEC_DIR = new PlugLocationController(context).LoadByName("EXECUTABLE_DIR").PlugLocationPath;

            PlugIn plug = new PlugIn();

            plug.PlugName         = "Interlogic.Trainings.Plugs.AbstractUI.Context";
            plug.PlugVersion      = "0.0.0.1";
            plug.PlugFriendlyName = "AbstractUI.Context";
            plug.PlugDescription  = "AbstractUI.Context Interfaces";
            plug.Active           = true;

            PlugFile file = new PlugFile();

            file.PlugFileName         = "Interlogic.Trainings.Plugs.AbstractUI.Context.dll";
            file.RelativeIncomingPath = @"..\..\..\Interlogic.Trainings.Plugs.AbstractUI.Context\bin\Debug";
            file.DestinationPath      = "EXECUTABLE_DIR";
            plug.Files.Add(file);
            trans.AddAction(new CopyFileAction(Path.Combine(file.RelativeIncomingPath, file.PlugFileName), Path.Combine(EXEC_DIR, file.PlugFileName), true));

            file = new PlugFile();
            file.PlugFileName         = "Interlogic.Trainings.Plugs.AbstractUI.Context.pdb";
            file.RelativeIncomingPath = @"..\..\..\Interlogic.Trainings.Plugs.AbstractUI.Context\bin\Debug";
            file.DestinationPath      = "EXECUTABLE_DIR";
            plug.Files.Add(file);
            trans.AddAction(new CopyFileAction(Path.Combine(file.RelativeIncomingPath, file.PlugFileName), Path.Combine(EXEC_DIR, file.PlugFileName), true));

            try
            {
                trans.Execute();
                trans.Commit();
                PlugInController plugController = new PlugInController(context);
                plugController.InsertAll(plug);
            }
            catch (Exception e)
            {
                Console.WriteLine("AbstractUI.Context installation failed");
                trans.RollBack();
                throw new Exception("AbstractUI.Context Installation Process Failed!", e);
            }
            Console.WriteLine("AbstractUI.Context successfully installed");
        }
Ejemplo n.º 4
0
        private void RefreshPlugins()
        {
            PlugInController controller = new PlugInController(_context);
            List <PlugIn>    plugs      = controller.LoadAll();

            PluginListView.Items.Clear();
            foreach (PlugIn plugin in plugs)
            {
                ListViewItem item;
                item = PluginListView.Items.Add(plugin.PlugFriendlyName);
                item.SubItems.Add(plugin.PlugVersion);
                item.SubItems.Add(plugin.PlugDescription);
                item.Tag = plugin.PlugId;
            }
        }
Ejemplo n.º 5
0
        public override void RegisterPlug(ITransactionContext context)
        {
            FileTransaction trans = new FileTransaction();

            trans.BeginTransaction();

            PlugLocationFactory plugLocFactory = PlugLocationFactory.GetInstance();

            plugLocFactory.Context = context as ISqlTransactionContext;
            string EXEC_DIR = new PlugLocationController(context).LoadByName("EXECUTABLE_DIR").PlugLocationPath;

            PlugIn plug = new PlugIn();

            plug.PlugName         = "Interlogic.Trainings.Plugs.AbstractUI";
            plug.PlugVersion      = "0.0.0.1";
            plug.PlugFriendlyName = "AbstractUI";
            plug.PlugDescription  = "AbstractUI Interfaces";
            plug.Active           = true;

            PlugFile file = new PlugFile();

            file.PlugFileName         = "Interlogic.Trainings.Plugs.AbstractUI.dll";
            file.RelativeIncomingPath = @"..\..\..\Interlogic.Trainings.Plugs.AbstractUI\bin\Debug";
            file.DestinationPath      = "EXECUTABLE_DIR";
            plug.Files.Add(file);
            trans.AddAction(new CopyFileAction(Path.Combine(file.RelativeIncomingPath, file.PlugFileName), Path.Combine(EXEC_DIR, file.PlugFileName), true));

            file = new PlugFile();
            file.PlugFileName         = "Interlogic.Trainings.Plugs.AbstractUI.pdb";
            file.RelativeIncomingPath = @"..\..\..\Interlogic.Trainings.Plugs.AbstractUI\bin\Debug";
            file.DestinationPath      = "EXECUTABLE_DIR";
            plug.Files.Add(file);
            trans.AddAction(new CopyFileAction(Path.Combine(file.RelativeIncomingPath, file.PlugFileName), Path.Combine(EXEC_DIR, file.PlugFileName), true));

            ClassDefinition classDef = new ClassDefinition();

            classDef.Active    = true;
            classDef.ClassName = "Interlogic.Trainings.Plugs.AbstractUI.IAbstractComponent";
            classDef.FileName  = "Interlogic.Trainings.Plugs.AbstractUI.dll";
            classDef.ClassDefinitionDescription = "IAbstractComponent public interface";
            plug.ClassDefinitions.Add(classDef);

            classDef           = new ClassDefinition();
            classDef.Active    = true;
            classDef.ClassName = "Interlogic.Trainings.Plugs.AbstractUI.IAbstractContainer";
            classDef.FileName  = "Interlogic.Trainings.Plugs.AbstractUI.dll";
            classDef.ClassDefinitionDescription = "IAbstractContainer public interface";
            plug.ClassDefinitions.Add(classDef);

            classDef           = new ClassDefinition();
            classDef.Active    = true;
            classDef.ClassName = "Interlogic.Trainings.Plugs.AbstractUI.INavigationComponent";
            classDef.FileName  = "Interlogic.Trainings.Plugs.AbstractUI.dll";
            classDef.ClassDefinitionDescription = "INavigationComponent public interface";
            plug.ClassDefinitions.Add(classDef);

            classDef           = new ClassDefinition();
            classDef.Active    = true;
            classDef.ClassName = "Interlogic.Trainings.Plugs.AbstractUI.INavigationListenerComponent";
            classDef.FileName  = "Interlogic.Trainings.Plugs.AbstractUI.dll";
            classDef.ClassDefinitionDescription = "INavigationListenerComponent public interface";
            plug.ClassDefinitions.Add(classDef);

            BindablePointDefinition bpd = new BindablePointDefinition();

            bpd.BindablePointName         = AbstractUiConstants.IAbstractUiContainer_Controls_BindingPointName;
            bpd.BindablePointFriendlyName = AbstractUiConstants.IAbstractUiContainer_Controls_BindingPointName;
            bpd.ClassDefinitionName       = "Interlogic.Trainings.Plugs.AbstractUI.IAbstractContainer";
            plug.BindablePointDefinitions.Add(bpd);

            bpd = new BindablePointDefinition();
            bpd.BindablePointName         = AbstractUiConstants.IAbstractUiNavigationControl_NavigationListeners_BindingPointName;
            bpd.BindablePointFriendlyName = AbstractUiConstants.IAbstractUiNavigationControl_NavigationListeners_BindingPointName;
            bpd.ClassDefinitionName       = "Interlogic.Trainings.Plugs.AbstractUI.INavigationComponent";
            plug.BindablePointDefinitions.Add(bpd);

            try
            {
                trans.Execute();
                trans.Commit();
                PlugInController plugController = new PlugInController(context);
                plugController.InsertAll(plug);
            }
            catch (Exception e)
            {
                trans.RollBack();
                throw new Exception("AbstractUI Installation Process Failed!", e);
            }
        }
Ejemplo n.º 6
0
        static void Main(string[] args)
        {
            SqlTransactionContext context = new SqlTransactionContext();

            //context.Connection = new SqlConnection("server=stranger;database=ASH_Trainings_RemoteAdmin;uid=sa;pwd=1");
            context.Connection = new SqlConnection("server=localhost;database=ASH_Trainings_RemoteAdmin;uid=sa;pwd=1");
            PlugInController manager = new PlugInController(context);

            try
            {
                System.Console.WriteLine("Possible commands:\n\tadd\n\tdelete\n\tupdate\n\tloadall\n\tloadbyid\n\tloadbyname\n\tquit\n");
                bool done = false;
                while (!done)
                {
                    System.Console.Write("#");
                    string cmd  = System.Console.ReadLine();
                    PlugIn plug = new PlugIn();
                    switch (cmd)
                    {
                    case "add":
                        System.Console.WriteLine("Input <PlugName> <PlugFriendlyName> <PlugDescription> <PlugVersion> <Active(0|1)>");
                        string tmp = System.Console.ReadLine();
                        plug = ParsePlug(tmp);
                        manager.Insert(plug);
                        break;

                    case "quit":
                        done = true;
                        break;

                    case "delete":
                        System.Console.Write("Input PlugId: ");
                        plug.PlugId = int.Parse(System.Console.ReadLine());
                        //manager.Delete(plug);
                        break;

                    case "update":
                        System.Console.WriteLine("Not implemented yet");
                        break;

                    case "loadall":
                        List <PlugIn> lst = manager.LoadAll();
                        foreach (PlugIn pl in lst)
                        {
                            PrintPlug(pl);
                            System.Console.WriteLine();
                        }
                        break;

                    case "loadbyid":
                        System.Console.Write("Input PlugId: ");
                        //plug = manager.LoadByPrimaryKey(int.Parse(System.Console.ReadLine()));
                        PrintPlug(plug);
                        break;

                    case "loadbyname":
                        System.Console.Write("Input PlugName: ");
                        //plug = manager.LoadByName(System.Console.ReadLine());
                        PrintPlug(plug);
                        break;

                    default:
                        System.Console.WriteLine("Possible commands:\n\tadd\tdelete\tupdate\tloadall\tloadbyid\tloadbyname\n");
                        break;
                    }
                    System.Console.WriteLine("<OK>");
                }
            }
            finally
            {
                //this is very very important
                context.Connection.Close();
            }
        }