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"); }
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); } }