Пример #1
0
        public IActionResult SaveProfile(int id, [FromBody] ProfileExportRequest request = null)
        {
            ProfileExportRequest profileRequest = null;

            if (request != null && request.SelectedTestCases != null)
            {
                var testRun = PTMKernelService.GetTestRun(id);
                profileRequest = new ProfileExportRequest()
                {
                    FileName          = PTMKernelService.EnsureProfileName(null),
                    TestSuiteId       = testRun.Configuration.TestSuite.Id,
                    ConfigurationId   = testRun.Configuration.Id,
                    TestResultId      = id,
                    SelectedTestCases = request.SelectedTestCases
                };
            }

            string profileLocation = profileRequest == null?PTMKernelService.SaveProfileSettingsByTestResult(id) : PTMKernelService.SaveProfileSettings(profileRequest);

            var profileStream = new FileStream(profileLocation, FileMode.Open, FileAccess.Read, FileShare.Read);

            return(new FileStreamResult(profileStream, System.Net.Mime.MediaTypeNames.Text.Xml)
            {
                FileDownloadName = Path.GetFileName(profileLocation)
            });
        }
        /// <summary>
        /// Saves the configurations as a profile.
        /// </summary>
        /// <param name="request">Profile request.</param>
        /// <returns>profile location</returns>
        public string SaveProfileSettings(ProfileExportRequest request)
        {
            CreateProfile(request);

            string filePublicDirectory = MoveProfileToTempDirectory(request.FileName);

            return(filePublicDirectory);
        }
        /// <summary>
        /// Saves the configurations as a profile.
        /// </summary>
        /// <param name="testResultId">Test result id.</param>
        /// <returns>profile location</returns>
        public string SaveProfileSettingsByTestResult(int testResultId)
        {
            var testRun = GetTestRun(testResultId);

            var profileRequest = new ProfileExportRequest()
            {
                FileName        = EnsureProfileName(null),
                TestSuiteId     = testRun.Configuration.TestSuite.Id,
                ConfigurationId = testRun.Configuration.Id,
                TestResultId    = testResultId,
            };

            return(SaveProfileSettings(profileRequest));
        }
        private string CreateProfile(ProfileExportRequest request)
        {
            List <TestCase> testCases = new List <TestCase>();

            var configurationNode = StoragePool.GetKnownNode(KnownStorageNodeNames.Configuration);

            var testSuite = GetTestSuite(request.TestSuiteId);

            using (ProfileUtil profile = ProfileUtil.CreateProfile(
                       request.FileName, testSuite.Name, testSuite.Version))
            {
                string configBasePath    = GetConfigurationsPath(request.ConfigurationId, configurationNode.AbsolutePath);
                string profileSourceFile = Path.Combine(configBasePath, ConfigurationConsts.Profile);

                ProfileUtil.FileToStream(profileSourceFile, profile.ProfileStream);

                string ptfConfigSourceDir = GetPtfConfigBasePath(request.ConfigurationId, configurationNode.AbsolutePath);

                string[] ptfConfigFiles = Directory.GetFiles(ptfConfigSourceDir, "*.ptfconfig", SearchOption.TopDirectoryOnly);

                foreach (string settingsConfigFile in ptfConfigFiles)
                {
                    profile.AddPtfCfg(settingsConfigFile);
                }


                if (request.SelectedTestCases != null)
                {
                    foreach (var testCaseName in request.SelectedTestCases)
                    {
                        var testCase = new TestCase()
                        {
                            FullName  = testCaseName,
                            IsChecked = true
                        };

                        testCases.Add(testCase);
                    }
                }

                ExportPlaylist(profile.PlaylistStream, true, request.TestResultId, testCases);
            }

            return(request.FileName);
        }