public async Task <IActionResult> AttendToTravelPlan([FromQuery] AttendToTravelPlanInput input) { try { using (var scope = _provider.CreateScope()) { var userService = scope.ServiceProvider.GetService <UserService>(); var result = userService.AttendToTravelPlan(input.UserId, input.TravelPlanId); var dto = new AttendToTravelPlanDto(); dto.Status = result; if (result == AttendStatus.Successful) { dto.Message = "Successfully attended to travel plan."; return(Ok(dto)); } else { if (result == AttendStatus.NoSeatsAvailable) { dto.Message = "No seats available."; } else if (result == AttendStatus.IsOwner) { dto.Message = "Attender is the owner of the travel plan"; } else if (result == AttendStatus.AlreadyAttended) { dto.Message = "Already attended."; } else if (result == AttendStatus.UserDoesntExist) { dto.Message = "User doesn't exist"; } else { dto.Message = "Couldn't attend to travel plan."; } return(BadRequest(dto)); } } } catch (Exception e) { return(StatusCode(500, new { Message = e.Message })); } }
public async void AttendToTravelPlan_ReturnsBadRequest_WithoutAnyUsersAndTravelPlans() { // Arrange var input = new AttendToTravelPlanInput { TravelPlanId = 1, UserId = 1, }; string queryString = "TravelPlanId={0}&UserId={1}"; queryString = String.Format(queryString, input.TravelPlanId, input.UserId); // Act var response = await TestClient.PostAsync("/User/AttendToTravelPlan?" + queryString, null); // body is null // Assert response.StatusCode.Should().Be(HttpStatusCode.BadRequest); }