Exemplo n.º 1
0
        private static ITenantService makeTenantService(
            string[] buildConfigurationIds,
            string rootUrl     = "aRootURL",
            int timeoutMinutes = 10)
        {
            if (buildConfigurationIds.Length == 0)
            {
                throw new ArgumentException("Value cannot be an empty collection.", nameof(buildConfigurationIds));
            }

            var serverBuildConfiguration = new ServerBuildConfiguration
            {
                ServerRootUrl      = rootUrl,
                BuildConfiguration =
                {
                    MaxWaitDurationInMinutes = timeoutMinutes,
                    BuildConfigurationIds    = string.Join(",", buildConfigurationIds)
                }
            };

            var tenantService = Substitute.For <ITenantService>();

            tenantService.GetAllConfigurationAsync <ServerBuildConfiguration>()
            .Returns(new[] { new Configuration <ServerBuildConfiguration>("oAuth", serverBuildConfiguration) });

            return(tenantService);
        }
        //[ValidateAntiForgeryToken]
        public async Task <IActionResult> Save(TeamCityConfigurationViewModel teamCityConfigurationViewModel)
        {
            if (!ModelState.IsValid)
            {
                return(RedirectToAction("Index"));
            }

            if (await _tenantService.ValidateTokenAsync(teamCityConfigurationViewModel.JwtToken))
            {
                var serverBuildConfiguration = new ServerBuildConfiguration
                {
                    ServerRootUrl = teamCityConfigurationViewModel.ServerUrl,
                };

                serverBuildConfiguration.BuildConfiguration.MaxWaitDurationInMinutes = teamCityConfigurationViewModel.MaxWaitDurationInMinutes;
                serverBuildConfiguration.BuildConfiguration.BuildConfigurationIds    = teamCityConfigurationViewModel.BuildConfigurationIds;

                await _tenantService.SetConfigurationAsync(teamCityConfigurationViewModel.JwtToken, serverBuildConfiguration);

                await _teamCityAggregator.ReInitializeFromConfigurationAsync();

                return(View("Index", teamCityConfigurationViewModel));
            }

            return(RedirectToAction("Index"));
        }