Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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"));
        }
Ejemplo n.º 3
0
        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);
        }
Ejemplo n.º 5
0
        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));
        }
Ejemplo n.º 6
0
        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));
        }