Ejemplo n.º 1
0
        private PlugFile TranslateToPlugFile(IDataReader dataReader)
        {
            PlugFile plugFile = new PlugFile();

            TranslateToPlugFile(dataReader, plugFile);
            return(plugFile);
        }
Ejemplo n.º 2
0
        internal List <PlugFile> InternalLoadAll()
        {
            RawSqlExecuteReaderAction readerAction = new RawSqlExecuteReaderAction();

            readerAction.CommandText = _loadAllCommandText;
            this.ExecuteCommand(readerAction);

            List <PlugFile> plugFileList = new List <PlugFile>();
            IDataReader     dataReader   = readerAction.DataReader;

            try
            {
                int[] ordinals = GetPlugFileFieldOrdinals(dataReader);
                while (dataReader.Read())
                {
                    PlugFile res = new PlugFile();
                    TranslateToPlugFile(dataReader, res, ordinals[0], ordinals[1], ordinals[2], ordinals[3], ordinals[4]);
                    plugFileList.Add(res);
                }
            }
            finally
            {
                dataReader.Close();
            }
            return(plugFileList);
        }
Ejemplo n.º 3
0
        internal List <PlugFile> InternalLoadByDestinationLocationId(int destLocId)
        {
            RawSqlExecuteReaderAction readerAction = new RawSqlExecuteReaderAction();

            readerAction.CommandText = _loadByDestLocIdCommandText;
            readerAction.AddParameter("@DestinationLocationId", destLocId, DbType.Int32);
            this.ExecuteCommand(readerAction);

            List <PlugFile> plugFileList = new List <PlugFile>();
            IDataReader     dataReader   = readerAction.DataReader;

            try
            {
                int[] ordinals = GetPlugFileFieldOrdinals(dataReader);
                while (dataReader.Read())
                {
                    PlugFile res = new PlugFile();
                    TranslateToPlugFile(dataReader, res, ordinals[0], ordinals[1], ordinals[2], ordinals[3], ordinals[4]);
                    plugFileList.Add(res);
                }
            }
            finally
            {
                dataReader.Close();
            }
            return(plugFileList);
        }
Ejemplo n.º 4
0
 protected void TranslateToPlugFile(IDataReader dataReader, PlugFile plugFile, int idIndex, int nameIndex, int relInPathIndex, int destLocIndex, int plugIndex)
 {
     plugFile.PlugFileId            = dataReader.GetInt32(idIndex);
     plugFile.PlugFileName          = dataReader.GetString(nameIndex);
     plugFile.RelativeIncomingPath  = dataReader.GetString(relInPathIndex);
     plugFile.DestinationLocationId = dataReader.GetInt32(destLocIndex);
     plugFile.PlugId = dataReader.GetInt32(plugIndex);
 }
Ejemplo n.º 5
0
        protected void Delete(PlugFile plugFile)
        {
            RawSqlExecuteNonQueryAction deleteAction = new RawSqlExecuteNonQueryAction();

            deleteAction.CommandText = _deleteCommandText;

            deleteAction.AddParameter("@PlugFileId", plugFile.PlugFileId, DbType.Int32);

            this.ExecuteCommand(deleteAction);
        }
Ejemplo n.º 6
0
        protected void Insert(PlugFile plugFile)
        {
            RawSqlInsertAction insertAction = new RawSqlInsertAction();

            insertAction.CommandText = _insertCommandText;

            insertAction.AddParameter("@PlugFileName", plugFile.PlugFileName, DbType.String);
            insertAction.AddParameter("@RelativeIncomingPath", plugFile.RelativeIncomingPath, DbType.String);
            insertAction.AddParameter("@DestinationLocationId", plugFile.DestinationLocationId, DbType.Int32);
            insertAction.AddParameter("@PlugId", plugFile.PlugId, DbType.Int32);

            this.ExecuteCommand(insertAction);
            plugFile.PlugFileId = insertAction.InsertedIdentity;
        }
Ejemplo n.º 7
0
        protected void Update(PlugFile plugFile)
        {
            RawSqlExecuteNonQueryAction updateAction = new RawSqlExecuteNonQueryAction();

            updateAction.CommandText = _updateCommandText;

            updateAction.AddParameter("@PlugFileId", plugFile.PlugFileId, DbType.Int32);
            updateAction.AddParameter("@PlugFileName", plugFile.PlugFileName, DbType.String);
            updateAction.AddParameter("@RelativeIncomingPath", plugFile.RelativeIncomingPath, DbType.String);
            updateAction.AddParameter("@DestinationLocationId", plugFile.DestinationLocationId, DbType.Int32);
            updateAction.AddParameter("@PlugId", plugFile.PlugId, DbType.Int32);

            this.ExecuteCommand(updateAction);
        }
Ejemplo n.º 8
0
        internal PlugFile InternalLoadByPrimaryKey(int plugFileId)
        {
            RawSqlExecuteReaderAction readerAction = new RawSqlExecuteReaderAction();

            readerAction.CommandText = _loadByIdCommandText;

            readerAction.AddParameter("@PlugFileId", plugFileId, DbType.Int32);

            PlugFile plugFile = null;

            this.ExecuteCommand(readerAction);
            try
            {
                readerAction.DataReader.Read();
                plugFile = TranslateToPlugFile(readerAction.DataReader);
            }
            finally
            {
                readerAction.DataReader.Close();
            }
            return(plugFile);
        }
Ejemplo n.º 9
0
        public override void RegisterPlug(ITransactionContext context)
        {
            #region Installing Required Environments
            Console.WriteLine("Installing Kernel required environment");
            PlugInFactory factoryPlug = PlugInFactory.GetInstance();
            factoryPlug.Context = context as SqlTransactionContext;
            factoryPlug.InstallRequiredEnvironment();
            Console.WriteLine("Installed PlugInFactory");

            PlugLocationFactory factoryPlugLocation = PlugLocationFactory.GetInstance();
            factoryPlugLocation.Context = context as SqlTransactionContext;
            factoryPlugLocation.InstallRequiredEnvironment();
            Console.WriteLine("Installed PlugLocationFactory");

            PlugFileFactory factoryPlugFile = PlugFileFactory.GetInstance();
            factoryPlugFile.Context = context as SqlTransactionContext;
            factoryPlugFile.InstallRequiredEnvironment();
            Console.WriteLine("Installed PlugFileFactory");

            ClassDefinitionFactory factoryClassDefinition = ClassDefinitionFactory.GetInstance();
            factoryClassDefinition.Context = context as SqlTransactionContext;
            factoryClassDefinition.InstallRequiredEnvironment();
            Console.WriteLine("Installed ClassDefinitionFactory");

            BindablePointDefinitionFactory factoryBindablePointDefinition = BindablePointDefinitionFactory.GetInstance();
            factoryBindablePointDefinition.Context = context as SqlTransactionContext;
            factoryBindablePointDefinition.InstallRequiredEnvironment();
            Console.WriteLine("Installed BindablePointDefinitionFactory");

            BindablePointFactory factoryBindablePoint = BindablePointFactory.GetInstance();
            factoryBindablePoint.Context = context as SqlTransactionContext;
            factoryBindablePoint.InstallRequiredEnvironment();
            Console.WriteLine("Installed BindablePointFactory");

            BindingFactory factoryBinding = BindingFactory.GetInstance();
            factoryBinding.Context = context as SqlTransactionContext;
            factoryBinding.InstallRequiredEnvironment();

            InstanceFactory factoryInstance = InstanceFactory.GetInstance();
            factoryInstance.Context = context as SqlTransactionContext;
            factoryInstance.InstallRequiredEnvironment();
            #endregion

            FileTransaction trans = new FileTransaction();
            trans.BeginTransaction();

            PlugIn plug = new PlugIn();
            plug.PlugName         = "Interlogic.Trainings.Plugs.Kernel";
            plug.PlugVersion      = "0.0.0.1";
            plug.PlugFriendlyName = "RemoteAdmin Kernel";
            plug.PlugDescription  = "RemoteAdmin Kernel";
            plug.Active           = true;

            PlugLocation loc = new PlugLocation();
            loc.PlugLocationName        = "EXECUTABLE_DIR";
            loc.PlugLocationPath        = Path.Combine(InitialDir, @"bin");
            loc.PlugLocationDescription = "Main executable directory";
            plug.Locations.Add(loc);

            string EXEC_DIR = loc.PlugLocationPath;

            PlugFile file = new PlugFile();
            file.PlugFileName         = "Interlogic.Trainings.Plugs.Kernel.dll";
            file.RelativeIncomingPath = @"..\..\..\Interlogic.Trainings.Plugs.Kernel\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.Kernel.pdb";
            file.RelativeIncomingPath = @"..\..\..\Interlogic.Trainings.Plugs.Kernel\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.ClassDefinitionDescription = "IInstantiatable public interface";
            classDef.ClassName = "Interlogic.Trainings.Plugs.Kernel.IInstantiatable";
            classDef.FileName  = "Interlogic.Trainings.Plugs.Kernel.dll";
            plug.ClassDefinitions.Add(classDef);

            try
            {
                Console.WriteLine("Trying to execute file transactions");
                trans.Execute();
                trans.Commit();
                Console.WriteLine("File transactions completed");
                Console.WriteLine("KernelPlug database insertion");
                PlugInController plugController = new PlugInController(context);
                plugController.InsertAll(plug);
            }
            catch (Exception e)
            {
                Console.WriteLine("Kernel installation failed! Rolling back");
                trans.RollBack();
                throw new Exception("Kernel Installation Process Failed!", e);
            }
            Console.WriteLine("KernelPlug succesfully installed!");
        }
Ejemplo n.º 10
0
        public DomainObject GetObjectByInstanceName(string instanceName)
        {
            if (this.NeedCaching(instanceName) && this.IsInCache(instanceName))
            {
                return(this.GetFromCache(instanceName));
            }
            Instance instance  = GetBySystemName(instanceName);
            string   className = null;
            int      fileId    = 0;

            using (ClassDefinitionFactory classFactory = ClassDefinitionFactory.GetInstance())
            {
                classFactory.Context = this.FactoryContext;
                ClassDefinition definition = classFactory.InternalLoadByPrimaryKey(instance.ClassDefinitionId);
                fileId    = definition.FileId;
                className = definition.ClassName;
            }
            string fileName       = null;
            int    fileLocationId = 0;

            using (PlugFileFactory fileFactory = PlugFileFactory.GetInstance())
            {
                fileFactory.Context = this.FactoryContext;
                PlugFile file = fileFactory.InternalLoadByPrimaryKey(fileId);
                fileName       = file.PlugFileName;
                fileLocationId = file.DestinationLocationId;
            }
            string path = null;

            using (PlugLocationFactory locationFactory = PlugLocationFactory.GetInstance())
            {
                locationFactory.Context = this.FactoryContext;
                PlugLocation location = locationFactory.InternalLoadByPrimaryKey(fileLocationId);
                path = location.PlugLocationPath;
            }
            string filePath     = Path.Combine(path, fileName);
            string assemblyName = Path.GetFileNameWithoutExtension(filePath);
            Type   requiredType = null;

            Assembly[] loadedAssemblies = AppDomain.CurrentDomain.GetAssemblies();
            foreach (Assembly assembly in loadedAssemblies)
            {
                if (assembly.GetName().Name == assemblyName)
                {
                    requiredType = assembly.GetType(className, false, false);
                    if (requiredType != null)
                    {
                        break;
                    }
                }
            }
            if (requiredType == null)
            {
                Assembly newDll = Assembly.LoadFrom(filePath);
                requiredType = newDll.GetType(className, false, false);
            }

            if (requiredType == null)
            {
                throw new ArgumentException(string.Format("Type '{0}' was not found.", className));
            }
            DomainObject    instanceObject = (DomainObject)Activator.CreateInstance(requiredType);
            IInstantiatable instantinable  = instanceObject as IInstantiatable;

            if (instantinable != null)
            {
                instantinable.Setup(instance, this.FactoryContext);
            }
            if (NeedCaching(instanceName))
            {
                SetToCache(instanceName, instanceObject);
            }
            return(instanceObject);
        }
Ejemplo n.º 11
0
 internal void InternalInsert(PlugFile plugFile)
 {
     Insert(plugFile);
 }
Ejemplo n.º 12
0
 protected void TranslateToPlugFile(IDataReader dataReader, PlugFile plugFile)
 {
     int[] indexes = GetPlugFileFieldOrdinals(dataReader);
     TranslateToPlugFile(dataReader, plugFile, indexes[0], indexes[1], indexes[2], indexes[3], indexes[4]);
 }
Ejemplo n.º 13
0
 internal void InternalDelete(PlugFile plugFile)
 {
     this.Delete(plugFile);
 }
Ejemplo n.º 14
0
 internal void InternalUpdate(PlugFile plugFile)
 {
     this.Update(plugFile);
 }