public async Task ShouldUpdateUser() { // Arrange using var scope = Factory.Services.CreateScope(); var updateUserModel = new UpdateUserModel { FirstName = "updated first name", LastName = "updated last name", }; var sut = new UpdateUserHandler(unitOfWork, mediator, mapper, currentUserServiceMock.Object); // Act GetPrivateUserModel sutResult = await sut.Handle(new UpdateUserCommand(updateUserModel), new CancellationToken(false)); // Assert Assert.NotNull(sutResult); var updatedUser = await unitOfWork.Users.GetEntityAsync(sutResult.Id); Assert.NotNull(updatedUser); Assert.False(updatedUser.Deleted); Assert.Equal(updatedUser.UserName, user.UserName); Assert.Equal(updatedUser.FirstName, updateUserModel.FirstName); Assert.Equal(updatedUser.LastName, updateUserModel.LastName); }
public async Task <IActionResult> Register(UserRegisterViewModel viewModel) { if (!ModelState.IsValid) { return(View(viewModel)); } // Verify not logged in GetPrivateUserModel privateUser = await new GetAuthenticatedUserQuery().DefaultIfExceptionAsync(Mediator); if (privateUser != null && privateUser.Id > 0) { return(RedirectToAction("Login")); } // Regiser User registeredUser = await Mediator.Send(new RegisterUserCommand(viewModel.RegisterModel)); // Login var loginModel = new LoginModel { UserName = registeredUser.UserName, Password = viewModel.RegisterModel.Password }; await _userAuthService.LogInAsync(loginModel); // Attatch image if present var file = Request.Form.Files.FirstOrDefault(); if (file != null) { PostImageModel imageModel = _imageFileReader.ConvertImageFileToImageModel(file); await Mediator.Send(new AddUserImageCommand(imageModel, registeredUser.Id)); } return(RedirectToAction("Me")); }
public async Task <ViewResult> Me() { GetPrivateUserModel privateModel = await Mediator.Send(new GetAuthenticatedUserQuery()); var pagingParams = new PagingParams { PageNumber = 1, PageSize = 10 }; var articles = await Mediator.Send(new GetArticlesByIdsQuery(privateModel.ArticleIds, pagingParams)); var comments = await Mediator.Send(new GetCommentsByIdsQuery(privateModel.CommentIds, pagingParams)); string imageDataURL = ""; if (privateModel.ProfileImageId > 0) { GetImageModel img = await Mediator.Send(new GetImageByIdQuery(privateModel.ProfileImageId)); imageDataURL = _imageDataHelper.ConvertImageDataToDataUrl(img.ImageData, img.ContentType); } var model = new PrivateUserDetailsViewModel { User = privateModel, ArticlePage = new FrontendPage <GetArticleModel>(articles), CommentPage = new FrontendPage <GetCommentModel>(comments), ImageDataUrl = imageDataURL }; return(View(model)); }
public async Task ShouldGetAuthenticatedUser() { // Arrange using var scope = Factory.Services.CreateScope(); var sut = new GetAuthenticatedUserHandler(userManager, unitOfWork, mediator, mapper, currentUserServiceMock.Object); // Act GetPrivateUserModel sutResult = await sut.Handle(new GetAuthenticatedUserQuery(), new CancellationToken(false)); // Assert Assert.NotNull(sutResult); Assert.Equal(user.Id, sutResult.Id); }
public async Task ShouldSaveCommentToUser() { // Arrange using var scope = Factory.Services.CreateScope(); var sut = new SaveCommentToUserHandler(unitOfWork, mediator, mapper, currentUserServiceMock.Object); // Act GetPrivateUserModel sutResult = await sut.Handle(new SaveCommentToUserCommand(comment.Id), new CancellationToken(false)); // Assert Assert.NotNull(sutResult); var updatedUser = await unitOfWork.Users.GetEntityAsync(user.Id); Assert.Contains(comment.Id, updatedUser.SavedComments.Select(sc => sc.CommentId)); }
public async Task <ViewResult> Details(int id, PagingParams pagingParams) { var commentModel = await Mediator.Send(new GetCommentQuery(id)); var board = await Mediator.Send(new GetBoardQuery(commentModel.BoardId)); GetArticleModel parentArticle; try { parentArticle = await Mediator.Send(new GetArticleQuery(commentModel.ParentArticleId)); } catch (NotFoundException) { parentArticle = new GetArticleModel(); } GetCommentModel parentComment; try { parentComment = await Mediator.Send(new GetCommentQuery(commentModel.ParentCommentId)); } catch (NotFoundException) { parentComment = new GetCommentModel(); } var childComments = await Mediator.Send(new GetCommentsByIdsQuery(commentModel.CommentIds, pagingParams)); var user = await Mediator.Send(new GetPublicUserQuery(commentModel.UserId)); GetPrivateUserModel privateUser = null; try { privateUser = await Mediator.Send(new GetAuthenticatedUserQuery()); } catch (NotFoundException) { } catch (UnauthorizedException) { } var loggedIn = privateUser != null && privateUser.Id != 0; var savedComment = loggedIn ? privateUser.SavedComments.Contains(id) : false; var model = new CommentDetailsViewModel { Board = board, ChildCommentPage = new FrontendPage <GetCommentModel>(childComments), Comment = commentModel, LoggedIn = loggedIn, ParentArticle = parentArticle, ParentComment = parentComment, PostCommentModel = new PostCommentModel(), User = user, UserSavedComment = savedComment, UserWroteComment = commentModel.UserId == user.Id }; return(View(model)); }