public async Task UpdateLoadBalancerOption_ReturnsNotFoundStatusCode() { //Arrange var newUnit = new LoadBalancerOption { Type = "Test10", LoadBalancerOptionId = 80 }; var content = Utilities.GetRequestContent(newUnit); //Act var response = await _client.PutAsync(UriForTests.UpdateUri(ControllerNames.LoadBalancerOptions), content); //Assert Assert.Equal(HttpStatusCode.NotFound, response.StatusCode); }
public async Task UpdateLoadBalancerOption_ReturnSuccessStatusCode() { //Arrange var newUnit = new LoadBalancerOption { Type = "Test10", LoadBalancerOptionId = 10 }; var content = Utilities.GetRequestContent(newUnit); //Act var response = await _client.PutAsync(UriForTests.UpdateUri(ControllerNames.LoadBalancerOptions), content); //Assert response.EnsureSuccessStatusCode(); }
public async Task <ResultModel> UpdateRoute(RoutesEditDto dto) { if (string.IsNullOrWhiteSpace(dto.DownstreamPathTemplate)) { return(new ResultModel(ResultCode.Fail, "请输入下游路径模板")); } if (string.IsNullOrWhiteSpace(dto.DownstreamScheme)) { return(new ResultModel(ResultCode.Fail, "请输入下游HTTP协议")); } if (string.IsNullOrWhiteSpace(dto.UpstreamPathTemplate)) { return(new ResultModel(ResultCode.Fail, "请输入上游路径模板")); } if (dto.DownstreamHostAndPorts == null || dto.DownstreamHostAndPorts.Count <= 0) { return(new ResultModel(ResultCode.Fail, "请填写至少一个下游地址")); } if (dto.UpstreamHttpMethods == null || dto.UpstreamHttpMethods.Count <= 0) { return(new ResultModel(ResultCode.Fail, "请填写至少一个上游HTTP方法")); } try { var routeModel = await _userDatabaseContext.Routes.Where(x => x.Id == dto.Id) .Include(x => x.AuthenticationOptions) .Include(x => x.DownstreamHostAndPorts) .Include(x => x.LoadBalancerOption) .Include(x => x.UpstreamHttpMethods) .FirstOrDefaultAsync(); routeModel.DownstreamPathTemplate = dto.DownstreamPathTemplate; routeModel.DownstreamScheme = dto.DownstreamScheme; routeModel.UpstreamPathTemplate = dto.UpstreamPathTemplate; routeModel.RouteIsCaseSensitive = dto.RouteIsCaseSensitive; routeModel.LoadBalancerOption = null; routeModel.AuthenticationOptions = null; routeModel.DownstreamHostAndPorts = null; routeModel.UpstreamHttpMethods = null; var loadBalancerOption = new LoadBalancerOption { Id = new Guid(), Type = dto.LoadBalancerOption.Type, RoutesGuid = routeModel.Id }; routeModel.LoadBalancerOption = loadBalancerOption; if (!string.IsNullOrWhiteSpace(dto.AuthenticationOptions.AuthenticationProviderKey)) { routeModel.AuthenticationOptions = new AuthenticationOptions { AuthenticationProviderKey = dto.AuthenticationOptions.AuthenticationProviderKey, RoutesGuid = routeModel.Id }; } var downstreamHostAndPorts = new List <DownstreamHostAndPorts> { }; dto.DownstreamHostAndPorts.ForEach(x => { downstreamHostAndPorts.Add(new DownstreamHostAndPorts { Host = x.Host, Port = x.Port }); }); var upstreamHttpMethods = new List <UpstreamHttpMethods> { }; dto.UpstreamHttpMethods.ForEach(x => { upstreamHttpMethods.Add(new UpstreamHttpMethods { Method = x.Method, RoutesGuid = routeModel.Id }); }); routeModel.DownstreamHostAndPorts = downstreamHostAndPorts; routeModel.UpstreamHttpMethods = upstreamHttpMethods; _userDatabaseContext.Routes.Update(routeModel); await _userDatabaseContext.SaveChangesAsync(); return(new ResultModel(ResultCode.Success, "更新路由配置成功")); } catch (Exception ex) { return(new ResultModel(ResultCode.Fail, ex.Message)); } }