internal CSGProjectManager(IEL EL, ECMTConfig Config) : base(EL, Config)
        {
            //ProjcectDllsBuiltTo
            this.ProjectDllsBuiltToDir = Config.EpicorAppServerRootDir + Config.ELConfig.ELEpicorAppServerAssembliesDir;
            if (false == System.IO.Directory.Exists(this.ProjectDllsBuiltToDir))
            {
                throw new Exception("Project DLLs Build Path Not Available.");
            }
            //csproj and sln file path
            this.CSProjPath     = Config.ECTargetRootDir + el.Folder + "Erp.Internal.CSG." + el.Name + this.ProjectFileTypeDictionary[VSProjectFileType.CSharpProject];
            this.CSProjUserPath = Config.ECTargetRootDir + el.Folder + "Erp.Internal.CSG." + el.Name + this.ProjectFileTypeDictionary[VSProjectFileType.CSharpProjectUser];
            this.SLNProjPath    = Config.ECTargetRootDir + el.Folder + "Erp.Internal.CSG." + el.Name + this.ProjectFileTypeDictionary[VSProjectFileType.Solution];

            //Deploy CMD, Even in debug mode, .pdb files not copied to deployment folder
            if (Config.DebugMode == true)
            {
                this.DeployCMD = Config.DeployCMD + " " + this.ProjectDllsBuiltToDir;
            }
            else
            {
                this.DeployCMD = Config.DeployCMD + " " + this.ProjectDllsBuiltToDir;
            }
            this.IISRecycleCMD = string.Empty;

            //CSG Template Dir
            this.GenericServerProcessTemplate = Config.ELConfig.ELCSGGenericServerProcessTemplate;

            //CSG Project Dir (for both New or Current)
            this.CSGProjDir     = Config.ECTargetRootDir + el.Folder;
            this.CSGProjRootDir = Config.ECTargetRootDir + CSG.DefaultFolder + el.Name + @"\";
        }
        internal ELProjectManager(IEL EL, ECMTConfig Config)
        {
            el = EL;

            //Reference dir
            this.ProjectReferenceDirAssemblies = Config.EpicorAppServerRootDir + Config.ELConfig.ELEpicorAppServerAssembliesDir;
            this.ProjectReferenceDirBin        = Config.EpicorAppServerRootDir + Config.ELConfig.ELEpicorAppServerBinDir;

            //Auto Flag
            this.AutoOpenProj = Config.AutoOpen && Config.ELConfig.ELAutoOpen;
            this.AutoDeploy   = Config.AutoDeploy && Config.ELConfig.ELAutoDeploy;
            //this.AutoIISRecycle = Config.AutoIISRecycle && Config.ELConfig.ELAutoIISRecycle;
            this.AutoCommit = Config.AutoCommit && Config.ELConfig.ELAutoCommit; //For future upgrade, not in use for now
        }
 public void Open(IEL EL, ECMTConfig Config)
 {
     if (EL is GH)
     {
         new GHProjectManager(EL, Config).OpenOrCreateProject();
     }
     else if (EL is CSG)
     {
         new CSGProjectManager(EL, Config).OpenOrCreateProject();
     }
     else
     {
         throw new Exception("EL Type not Recognized");
     }
 }
        internal GHProjectManager(IEL EL, ECMTConfig Config) : base(EL, Config)
        {
            //Project Build To Dir
            this.ProjectDllsBuiltToDir = Config.EpicorAppServerRootDir + Config.ELConfig.ELAutoDeployDir;
            if (false == System.IO.Directory.Exists(this.ProjectDllsBuiltToDir))
            {
                throw new Exception("Project DLLs Build Path Not Available.");
            }

            //AutoIISCycle
            this.AutoIISRecycle = Config.AutoIISRecycle && Config.ELConfig.ELAutoIISRecycle;

            //csproj and sln file path
            this.CSProjPath     = Config.ECTargetRootDir + el.Folder + el.Folder + el.Name + this.ProjectFileTypeDictionary[VSProjectFileType.CSharpProject];
            this.CSProjUserPath = Config.ECTargetRootDir + el.Folder + el.Folder + el.Name + this.ProjectFileTypeDictionary[VSProjectFileType.CSharpProjectUser];
            this.SLNProjPath    = Config.ECTargetRootDir + el.Folder + el.Name + this.ProjectFileTypeDictionary[VSProjectFileType.Solution];
            if (true == System.IO.File.Exists(this.SLNProjPath))
            {
                this.IsSLNProj = true;
            }
            else if (true == System.IO.File.Exists(this.CSProjPath))
            {
                this.IsSLNProj = false;
            }

            //Deploy CMD, Even in debug mode, .pdb files not copied to deployment folder
            if (Config.DebugMode == true)
            {
                this.DeployCMD = Config.DeployCMD + " " + this.ProjectDllsBuiltToDir;
            }
            else
            {
                this.DeployCMD = Config.DeployCMD + " " + this.ProjectDllsBuiltToDir;
            }
            if (this.AutoIISRecycle)
            {
                this.IISRecycleCMD = Config.ECTargetRootDir + Config.IISRecyclePath + " " + Config.EpicorAppServer;
            }
        }