public async Task <IActionResult> UpdateCapability(string id, [FromBody] CapabilityInput input) { var capabilityId = Guid.Empty; Guid.TryParse(id, out capabilityId); IActionResult actionResult; try { var capability = await _capabilityApplicationService.UpdateCapability(capabilityId, input.Name, input.Description); var dto = Capability.Create(capability); actionResult = Ok( value: dto ); } catch (Exception exception) when(ExceptionToStatusCode.CanConvert(exception, out actionResult)) { } return(actionResult); }
public async Task <IActionResult> CreateCapability([FromBody] CapabilityInput input) { Capability capability; try { capability = await _capabilityServiceClient.CreateCapability(input.Name, input.Description); } catch (UnauthorizedException) { return(Unauthorized()); } catch (RecoverableUpstreamException ex) { return(StatusCode((int)ex.HttpStatusCode, ex.Message)); } var createdAtRouteResultConverter = new CreatedAtRouteResultConverter <Capability>( routeName: "GetCapabilityById", routeValues: new { id = capability.Id }, value: capability ); return(createdAtRouteResultConverter.Convert()); }
private async Task When_a_capability_create_is_posted() { var capabilityController = new CapabilityController(_capabilityApplicationService); var capabilityInput = new CapabilityInput { Name = _capability.Name, Description = _capability.Description }; _createResponse = await capabilityController.CreateCapability(capabilityInput); }
public async Task returns_bad_request_when_creating_new_capability_with_invalid_name() { var expected = new CapabilityListItemBuilder().Build(); var sut = new CapabilityApiControllerBuilder() .WithCapabilityService(new ErroneousCapabilityServiceClient(new RecoverableUpstreamException(HttpStatusCode.BadRequest, "I don't understand the syntax"))) .Build(); var dummyInput = new CapabilityInput(); var result = (ObjectResult)await sut.CreateCapability(dummyInput); Assert.Equal((int)HttpStatusCode.BadRequest, result.StatusCode.Value); }
public async Task returns_badrequest_when_creating_new_capability_with_invalid_name() { var expected = new CapabilityListItemBuilder().Build(); var sut = new CapabilityApiControllerBuilder() .WithCapabilityService(new ErroneousCapabilityServiceClient(new CapabilityValidationException("booo"))) .Build(); var dummyInput = new CapabilityInput(); var result = await sut.CreateCapability(dummyInput); Assert.IsType <BadRequestObjectResult>(result); }
public async Task returns_expected_when_creating_new_capability() { var expected = new CapabilityListItemBuilder().Build(); var sut = new CapabilityApiControllerBuilder() .WithCapabilityService(new StubCapabilityServiceClient(capabilities: expected)) .Build(); var dummyInput = new CapabilityInput(); var result = (CreatedAtRouteResult)await sut.CreateCapability(dummyInput); Assert.Equal( expected: expected, actual: result.Value ); }
public async Task <IActionResult> CreateCapability([FromBody] CapabilityInput input) { try { var capability = await _capabilityServiceClient.CreateCapability(input.Name, input.Description); var a = new CreatedAtRouteResult <Capability>( routeName: "GetCapabilityById", routeValues: new { id = capability.Id }, value: capability ); return(a.Convert()); } catch (CapabilityValidationException tve) { return(BadRequest(new { Message = tve.Message })); } }
public async Task <IActionResult> UpdateCapability(string id, [FromBody] CapabilityInput input) { try { var currentCapability = await _capabilityServiceClient.GetById(id); await _capabilityServiceClient.UpdateCapability(id, currentCapability.Name, input.Description); } catch (UnauthorizedException) { return(Unauthorized()); } catch (HttpRequestException) { return(BadRequest()); } return(NoContent()); }
public async Task <IActionResult> CreateCapability(CapabilityInput input) { try { var capability = await _capabilityApplicationService.CreateCapability(input.Name, input.Description); var dto = Capability.Create(capability); return(CreatedAtAction( actionName: nameof(GetCapability), routeValues: new { id = capability.Id }, value: dto )); } catch (CapabilityValidationException tve) { return(BadRequest(new { Message = tve.Message })); } }
public async Task <IActionResult> CreateCapability(CapabilityInput input) { IActionResult actionResult; try { var capability = await _capabilityApplicationService.CreateCapability(input.Name, input.Description); var dto = Capability.Create(capability); actionResult = CreatedAtAction( actionName: nameof(GetCapability), routeValues: new { id = capability.Id }, value: dto ); } catch (Exception exception) when(ExceptionToStatusCode.CanConvert(exception, out actionResult)) { } return(actionResult); }