public async Task <RegisterResponse> RegisterAsync(RegisterModel registerModel) { try { var userExists = await _userManager.FindByNameAsync(registerModel.Username); if (userExists != null) { return(new RegisterResponse(BaseApiResponse <UserDto> .CreateErrorResponse($"User already exists!"))); } var user = new User(registerModel); var result = await _userManager.CreateAsync(user, registerModel.Password); if (!result.Succeeded) { return(new RegisterResponse(BaseApiResponse <UserDto> .CreateErrorResponse($"User creation failed: {result.Errors.GetErrorsAsString()}"))); } var userDto = _mapper.Map <UserDto>(user); return(new RegisterResponse( BaseApiResponse <UserDto> .CreateSuccessResponse("User created successfully!", userDto))); } catch (Exception ex) { return(new RegisterResponse(BaseApiResponse <UserDto> .CreateErrorResponse( $"An error occured during user registration: {ex.Message}"))); } }
private GuestListResponse CreateGuestListSuccessResponse(IEnumerable <Guest> guests) { var guestDtos = Mapper.Map <IEnumerable <GuestDto> >(guests); var guestList = new GuestListDto { Guests = guestDtos }; return(new GuestListResponse( BaseApiResponse <GuestListDto> .CreateSuccessResponse("Guests list successfully retrieved.", guestList)) { Count = guestDtos.ToList().Count }); }
public void CreateSuccessResponse_ReturnsResponse_WithTrueResultAndSuccessStatus() { // Arrange var testMessage = "Test message"; var mockDto = new Mock <IDto>(); // Act var result = BaseApiResponse <IDto> .CreateSuccessResponse(testMessage, mockDto.Object); // Assert result.Should().NotBeNull(); result.Item.Should().NotBeNull(); result.Result.Should().BeTrue(); result.Status.Should().Be(ResponseStatus.Success); result.Message.Should().Be(testMessage); }
public async Task Index_ReturnsOkObjectResult_WithListOfGuests_ForGivenAgeParam() { // Arrange int ageParam = 3; var mockLogger = new Mock <ILogger <GuestsController> >(); var mockService = new Mock <IGuestService>(); var mockGuests = new List <GuestDto>(new GuestDto[] { new GuestDto(), new GuestDto(), new GuestDto() }); var mockItem = new GuestListDto { Guests = mockGuests }; var mockResponse = new GuestListResponse( BaseApiResponse <GuestListDto> .CreateSuccessResponse("test message", mockItem)) { Count = mockGuests.Count }; mockService.Setup(svc => svc.GetGuestsByAgeAsync(ageParam)).ReturnsAsync(mockResponse); var controller = new GuestsController(mockLogger.Object, mockService.Object); // Act var result = await controller.Index(ageParam); // Assert result.Should().BeOfType <OkObjectResult>(); var okObjectResult = (OkObjectResult)result; okObjectResult.Value.Should().NotBeNull(); okObjectResult.Value.Should().BeOfType <GuestListResponse>(); var response = (GuestListResponse)okObjectResult.Value; response.Status.Should().Be(ResponseStatus.Success); response.Result.Should().BeTrue(); response.Item.Guests.Should().NotBeNull(); response.Item.Guests.Should().NotBeEmpty(); response.Item.Guests.Should().HaveCount(3); response.Count.Should().Be(3); }
public async Task Create_ReturnsOkResult_WithGuest_ForGivenGuestDto() { // Arrange var mockLogger = new Mock <ILogger <GuestsController> >(); var mockService = new Mock <IGuestService>(); var mockGuest = new GuestDto { Id = 1, FirstName = "John", LastName = "Doe" }; var mockItem = new GuestDto { Id = 1, FirstName = "John", LastName = "Doe" }; var mockResponse = new GuestResponse( BaseApiResponse <GuestDto> .CreateSuccessResponse("test message", mockItem)); mockService.Setup(svc => svc.CreateAsync(mockGuest)).ReturnsAsync(mockResponse); var controller = new GuestsController(mockLogger.Object, mockService.Object); // Act var result = await controller.Create(mockGuest); // Assert result.Should().BeOfType <OkObjectResult>(); var okObjectResult = (OkObjectResult)result; okObjectResult.Value.Should().NotBeNull(); okObjectResult.Value.Should().BeOfType <GuestResponse>(); var response = (GuestResponse)okObjectResult.Value; response.Result.Should().BeTrue(); response.Status.Should().Be(ResponseStatus.Success); response.Item.Id.Should().Be(mockGuest.Id); response.Item.FirstName.Should().Be(mockGuest.FirstName); response.Item.LastName.Should().Be(mockGuest.LastName); }
public async Task <LoginResponse> AuthenticateAsync(LoginModel loginModel) { if (loginModel == null) { return(new LoginResponse( BaseApiResponse <UserDto> .CreateErrorResponse("LoginModel cannot be null."))); } try { var user = await _userManager.FindByNameAsync(loginModel.Username); if (user != null && await _userManager.CheckPasswordAsync(user, loginModel.Password)) { // TODO: roles // var userRoles = await _userManager.GetRolesAsync(user); var token = _jwtService.GenerateJwtToken(user); var userDto = _mapper.Map <UserDto>(user); var response = new LoginResponse( BaseApiResponse <UserDto> .CreateSuccessResponse("User authenticated successfully!", userDto)) { Token = new JwtSecurityTokenHandler().WriteToken(token), Expiration = token.ValidTo }; return(response); } return(new LoginResponse(BaseApiResponse <UserDto> .CreateErrorResponse("User not authenticated."))); } catch (Exception ex) { return(new LoginResponse(BaseApiResponse <UserDto> .CreateErrorResponse( $"An error occured during user authentication: {ex.Message}"))); } }
protected override WeddingHallSummaryResponse CreateSuccessResponse(string message, WeddingHallDto item) => new WeddingHallSummaryResponse(BaseApiResponse <WeddingHallDto> .CreateSuccessResponse(message, item));
protected override GuestResponse CreateSuccessResponse(string message, GuestDto item) => new GuestResponse(BaseApiResponse <GuestDto> .CreateSuccessResponse(message, item));
protected override OutfitResponse <OutfitDto> CreateSuccessResponse(string message, OutfitDto item) { return(new OutfitResponse <OutfitDto>( BaseApiResponse <OutfitDto> .CreateSuccessResponse(message, item))); }