protected override void ProcessRecord()
        {
            base.ProcessRecord();

            Logger.LogInformation("Packing Solution from Path: {0}", Folder);

            SolutionPackagerManager packagerManager = new SolutionPackagerManager(Logger);

            SolutionPackager_PackageType packageType;

            if (!Enum.TryParse <SolutionPackager_PackageType>(PackageType, out packageType))
            {
                throw new Exception($"{PackageType} is not valid");
            }

            bool result = packagerManager.ExtractSolution(
                SolutionPackagerPath,
                SolutionFile,
                Folder,
                packageType,
                MappingFile,
                SourceLoc,
                Localize,
                TreatWarningsAsErrors,
                LogsDirectory);

            if (!result)
            {
                throw new System.Exception("Extracting Solution failed. Check logs for more information");
            }

            Logger.LogInformation("Exracting Solution Completed");
        }
        protected override void ProcessRecord()
        {
            base.ProcessRecord();

            Logger.LogInformation("Packing Solution from Path: {0}", Folder);

            SolutionPackagerManager packagerManager = new SolutionPackagerManager(Logger);

            SolutionPackager_PackageType packageType;

            if (!Enum.TryParse <SolutionPackager_PackageType>(PackageType, out packageType))
            {
                throw new Exception($"{PackageType} is not valid");
            }

            bool result = packagerManager.PackSolution(
                SolutionPackagerPath,
                OutputFolder,
                Folder,
                packageType,
                IncludeVersionInName,
                MappingFile,
                TreatWarningsAsErrors,
                IncrementReleaseVersion,
                Version,
                LogsDirectory);

            if (!result)
            {
                throw new System.Exception("Packing Solution failed. Check logs for more information");
            }

            Logger.LogInformation("Packing Solution Completed");
        }
        protected override void ProcessRecord()
        {
            base.ProcessRecord();

            Logger.LogInformation("Packing Solution using config: {0}", ConfigFilePath);

            SolutionPackagerManager packagerManager = new SolutionPackagerManager(Logger);

            List <bool> results = packagerManager.PackSolutions(SolutionPackagerPath, OutputFolder, ConfigFilePath, LogsDirectory);

            if (results.Contains(false))
            {
                throw new System.Exception("Packing Solutions failed. Check logs for more information");
            }

            Logger.LogInformation("Packing Solutions Completed");
        }
        public void TestPackSolutions()
        {
            Logger        = new TestLogger();
            LogsDirectory = TestContext.TestLogsDir;
            LogFileName   = $"{TestContext.TestName}.txt";

            string currentDirectory = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);

            //TODO: Need to fix paths

            string solutionPackager = $"{currentDirectory}\\..\\..\\..\\packages\\Microsoft.CrmSdk.CoreTools.9.0.2.6\\content\\bin\\coretools\\SolutionPackager.exe";

            string folder = @"..\..\..\..\..\..\dyn365-ce-devops-sample\Sample\Xrm.CI.Framework.Sample\Customizations\Solutions\xRMCISample\Customizations";

            string mapping = @"..\..\..\..\..\..\dyn365-ce-devops-sample\Sample\Xrm.CI.Framework.Sample\Customizations\Solutions\xRMCISample\mapping.xml";

            SolutionPackConfig config = new SolutionPackConfig();

            config.Solutions.Add(new SolutionPackOptions()
            {
                Folder                  = folder,
                MappingFile             = mapping,
                IncludeVersionInName    = true,
                PackageType             = SolutionPackager_PackageType.Both,
                TreatWarningsAsErrors   = false,
                IncrementReleaseVersion = true,
                Version                 = string.Empty
            }
                                 );

            string configFile = $"{currentDirectory}\\PackConfig.json";

            Serializers.SaveJson <SolutionPackConfig>(configFile, config);

            SolutionPackagerManager packagerManager = new SolutionPackagerManager(Logger);

            List <bool> results = packagerManager.PackSolutions(solutionPackager, LogsDirectory, configFile, LogsDirectory);
        }