Beispiel #1
0
        static void Main(string[] args)
        {
            IPostRepository    postRepository    = new PostDataAccess();
            IUserRepository    userRepository    = new UserDataAccess();
            ICommentRepository commentRepository = new CommentDataAccess();

            var service = new UserService(userRepository, postRepository, commentRepository);

            var response = service.GetUserActiveRespose(1);

            foreach (var item in response)
            {
                Console.Write(item);
            }
            var service1 = new UserService(userRepository, postRepository, commentRepository);

            var comments = service1.GetUserComents(2);

            foreach (var item in comments)
            {
                Console.Write(item.Comment);
            }



            Console.ReadLine();
        }
Beispiel #2
0
        static void Main(string[] args)
        {
            IPostRepository    postRepository    = new PostDataAccess();
            IUserRepository    userRepository    = new UserDataAccess();
            ICommentRepository commentRepository = new CommentDataAccess();

            var service = new UserService(userRepository, postRepository);

            // var response = service.GetUserActiveRespose(4);

            var commentService = new UserCommentsService(userRepository, postRepository, commentRepository);
            int user           = 9;
            var userComments   = commentService.GetUserComments(user);

            if (userComments.Comments.Count == 0)
            {
                Console.WriteLine($"User {user} has no comments");
            }
            foreach (var c in userComments.Comments)
            {
                Console.WriteLine($"Comment for User: {userComments.User.Id},PostId: {c.PostId}, Body: {c.Text}");
            }

            Console.ReadKey();
        }
Beispiel #3
0
        public static async Task <Post> Add(Post post, Account account)
        {
            CheckValid(post);
            post.Owner = account;

            return(await PostDataAccess.Add(post));
        }
Beispiel #4
0
        // GET: Reply
        public ActionResult AddReplyAction(int replyOfPost, string replyUser, string content, int hasPicture, string picturePath)
        {
            if (Request.Cookies["LoginUser"] == null)
            {
                return(Json("您未登录"));
            }

            content = SensitiveWordFilter.CheckValidity(content);

            ReplyDataAccess rda   = new ReplyDataAccess();
            Reply           reply = new Reply();

            reply.ReplyOfPost = replyOfPost;
            reply.ReplyUser   = replyUser;
            reply.ReplyTime   = DateTime.Now;
            new PostDataAccess().SetReplyCount(replyOfPost);
            int floor = new PostDataAccess().GetPostByID(replyOfPost).ReplyCount;

            reply.ReplyFloor   = floor + 1;
            reply.ReplyContent = content;
            reply.HasPicture   = hasPicture;
            reply.PicturePath  = picturePath;

            bool addresult = rda.AddReply(reply);

            if (addresult)
            {
                new LogDataAccess().AddLog(replyUser, new UserDataAccess().GetUserByID(replyUser).NickName, "回复了《" + new PostDataAccess().GetPostByID(replyOfPost).Title + "》");
                return(Json("success"));
            }
            else
            {
                return(Json("failed"));
            }
        }
Beispiel #5
0
        public void TestEditPost_ValidData_Success()
        {
            var mockPostRepo        = new MockPostRepo();
            var mockPostValidator   = new MockPostValidator();
            var mockAuthorValidator = new MockAuthorValidator();
            var postDataAccess      = new PostDataAccess(mockPostRepo, mockPostValidator, new MockAuthorRepo(), mockAuthorValidator);
            var post         = new Post("OriginalTitle", new Author("OriginalAuthor", 0), "OriginalBody");
            var expectedPost = new Post("newTitle", new Author("newAuthor", 0), "newBody", post.Timestamp, post.PostID);
            var listOfPosts  = new List <Post>()
            {
                post
            };

            mockPostValidator.StubPostExists(true)
            .StubValidPost(true);
            mockPostRepo.StubGetAllPosts(listOfPosts)
            .StubTryEditPostBool(true)
            .StubTryEditPostResult(expectedPost);
            mockAuthorValidator.StubIsValidAuthor(true);
            var returnedPost = postDataAccess.EditPost(post);

            mockPostValidator.AssertPostExistsCalled();
            mockPostRepo.AssertGetAllPostsCalled();
            mockPostValidator.AssertIsValidPostCalled();
            mockPostRepo.AssertTryEditPostCalled();
            mockAuthorValidator.AssertIsValidAuthorCalled();
            Assert.NotNull(returnedPost);
            AssertPostsEqual(expectedPost, returnedPost);
        }
Beispiel #6
0
        static void Main(string[] args)
        {
            IPostRepository postRepository = new PostDataAccess();
            IUserRepository userRepository = new UserDataAccess();

            var service = new UserService(userRepository, postRepository);

            var response = service.GetUserActiveRespose(2);
        }
Beispiel #7
0
        public void TestGetPostFromList_EmptyList()
        {
            var postDataAccess = new PostDataAccess(new MockPostRepo(), new MockPostValidator(), new MockAuthorRepo(), new MockAuthorValidator());
            var listOfPosts    = new List <Post>();

            var returnedPost = postDataAccess.GetPostFromList(listOfPosts, Guid.NewGuid());

            Assert.Null(returnedPost);
        }
        public void PostDataAccessGet_True()
        {
            List <Post> posts = new List <Post>()
            {
                new Post()
                {
                    id                 = 1,
                    date               = new DateTime(2020, 11, 20),
                    imgURL             = "",
                    numberOfComments   = 1,
                    postContent        = "test content 1",
                    postPreviewContent = "preview 1",
                    title              = "Post 1"
                },
                new Post()
                {
                    id                 = 2,
                    date               = new DateTime(2020, 11, 20),
                    imgURL             = "/img1",
                    numberOfComments   = 1,
                    postContent        = "test content 2",
                    postPreviewContent = "preview 2",
                    title              = "Post 2"
                }
            };

            DataTable table1 = new DataTable();

            table1.Columns.Add("Id", typeof(int));
            table1.Columns.Add("date", typeof(DateTime));
            table1.Columns.Add("imgURL", typeof(string));
            table1.Columns.Add("numberOfComments", typeof(int));
            table1.Columns.Add("postContent", typeof(string));
            table1.Columns.Add("postPreviewContent", typeof(string));
            table1.Columns.Add("title", typeof(string));
            table1.Rows.Add("1", new DateTime(2020, 11, 20), "", "1", "test content 1", "preview 1", "Post 1");
            table1.Rows.Add("2", new DateTime(2020, 11, 20), "/img1", "1", "test content 2", "preview 2", "Post 2");


            Mock <IBaseDataAccess> mock = new Mock <IBaseDataAccess>();


            mock.Setup(x => x.Get(It.IsAny <IDbCommand>())).Returns(table1);

            PostDataAccess postDataAccess = new PostDataAccess(mock.Object);
            List <Post>    p = new List <Post>();

            p = postDataAccess.GetPost();

            mock.Verify((m => m.Get(It.IsAny <IDbCommand>())), Times.Once());

            Assert.Equal(2, posts.Count);
            Assert.Equal(posts.Count, p.Count);
            Assert.True(posts[0].Equals(p[0]));
            Assert.True(posts[1].Equals(p[1]));
        }
Beispiel #9
0
        public void TestSearchBy_InvalidData_Failure()
        {
            var mockPostRepo        = new MockPostRepo();
            var mockPostValidator   = new MockPostValidator();
            var mockAuthorRepo      = new MockAuthorRepo();
            var mockAuthorValidator = new MockAuthorValidator();
            var postDataAccess      = new PostDataAccess(mockPostRepo, mockPostValidator, mockAuthorRepo, mockAuthorValidator);

            //TODO
        }
Beispiel #10
0
        public static Post Get(int id)
        {
            var post = PostDataAccess.Get(id);

            if (post == null)
            {
                throw new Error404NotFound <Post>(id);
            }

            return(post);
        }
Beispiel #11
0
        public void TestAddPost_InvalidPost_Failure(string title, string authorName, string body)
        {
            var mockPostValidator = new MockPostValidator();
            var postDataAccess    = new PostDataAccess(new MockPostRepo(), mockPostValidator, new MockAuthorRepo(), new MockAuthorValidator());
            var post = new Post(title, new Author(authorName, 0), body);

            mockPostValidator.StubValidPost(false);

            Assert.Throws <ArgumentException>(() => postDataAccess.AddPost(post));
            mockPostValidator.AssertIsValidPostCalled();
        }
Beispiel #12
0
        public void TestDeletePost_InvalidPost_Failure()
        {
            var mockPostValidator = new MockPostValidator();
            var postDataAccess    = new PostDataAccess(new MockPostRepo(), mockPostValidator, new MockAuthorRepo(), new MockAuthorValidator());
            var post = new Post("", new Author("", 0), "");

            mockPostValidator.StubPostExists(false);

            Assert.Throws <ArgumentException>(() => postDataAccess.DeletePost(post));
            mockPostValidator.AssertPostExistsCalled();
        }
Beispiel #13
0
        public static async Task <Post> Update(Post post, Account account)
        {
            var postInDatabase = post.GetManaged;

            if (!postInDatabase.IsOwner(account))
            {
                throw new Error403Forbidden <Post>("Bạn không có quyền chỉnh sửa bài viết này");
            }

            CheckValid(post);

            return(await PostDataAccess.Update(postInDatabase, post));
        }
Beispiel #14
0
        public static async Task Delete(int id, Account account)
        {
            var post             = Get(id);
            var conditionOfAdmin = account.Access == EnumAccess.Administrator;
            var conditionOfMod   = post.IsOwner(account);

            if (!(conditionOfAdmin || conditionOfMod))
            {
                throw new Error403Forbidden <Post>("Bạn không có quyền xóa bài viết này");
            }

            await PostDataAccess.Delete(post);
        }
Beispiel #15
0
        public void TestEditPost_PostExistsButInvalidPost()
        {
            var mockPostValidator = new MockPostValidator();
            var postDataAccess    = new PostDataAccess(new MockPostRepo(), mockPostValidator, new MockAuthorRepo(), new MockAuthorValidator());
            var post = new Post("", new Author("", 0), "");

            mockPostValidator.StubPostExists(true)
            .StubValidPost(false);

            Assert.Throws <ArgumentException>(() => postDataAccess.EditPost(post));
            mockPostValidator.AssertPostExistsCalled();
            mockPostValidator.AssertIsValidPostCalled();
        }
Beispiel #16
0
        static void Main(string[] args)
        {
            IPostRepository    postRepository    = new PostDataAccess();
            IUserRepository    userRepository    = new UserDataAccess();
            ICommentRepository commentRepository = new CommentDataAccess();

            //var service = new UserService(userRepository, postRepository);

            //var response = service.GetUserActiveRespose(2);

            var serviceComments = new UserCommentService(userRepository, commentRepository);
            var userComments    = serviceComments.UserComments(1);
        }
Beispiel #17
0
        public void TestGetPostFromList_invalidID()
        {
            var nonExistentPostID = "00000000-0000-0000-0000-000000000000";
            var postDataAccess    = new PostDataAccess(new MockPostRepo(), new MockPostValidator(), new MockAuthorRepo(), new MockAuthorValidator());
            var post        = new Post("", new Author("", 0), "");
            var listOfPosts = new List <Post>()
            {
                post
            };

            var returnedPost = postDataAccess.GetPostFromList(listOfPosts, Guid.Parse(nonExistentPostID));

            Assert.Null(returnedPost);
        }
Beispiel #18
0
        public void TestGetPostFromList_ValidID()
        {
            var postDataAccess = new PostDataAccess(new MockPostRepo(), new MockPostValidator(), new MockAuthorRepo(), new MockAuthorValidator());
            var post           = new Post("", new Author("", 0), "");
            var listOfPosts    = new List <Post>()
            {
                post
            };

            var returnedPost = postDataAccess.GetPostFromList(listOfPosts, post.PostID);

            Assert.NotNull(returnedPost);
            AssertPostsEqual(post, returnedPost);
        }
Beispiel #19
0
        public void TestGetPostById_InvalidID_Success()
        {
            var nonExistentPostID = "33b9def6-f7db-4120-9f00-6137bbeeb8d1";
            var postDataAccess    = new PostDataAccess(new MockPostRepo(), new MockPostValidator(), new MockAuthorRepo(), new MockAuthorValidator());
            var post        = new Post("", new Author("", 0), "", DateTime.Now, Guid.Parse("bb2da75b-3bec-4d92-ba7e-4cbdf7b50759"));
            var listOfPosts = new List <Post>();

            listOfPosts.Add(post);
            new MockPostRepo().StubGetAllPosts(listOfPosts);
            var returnedPost = postDataAccess.GetPostById(Guid.Parse(nonExistentPostID));

            new MockPostRepo().AssertGetAllPostsCalled();
            Assert.Null(returnedPost);
        }
        public ActionResult DeletePostByID(string post_id)
        {
            PostDataAccess pda          = new PostDataAccess();
            var            deleteresult = pda.DeletePostByID(post_id);

            if (deleteresult)
            {
                return(Json("success"));
            }
            else
            {
                return(Json("error"));
            }
        }
Beispiel #21
0
        public void TestGetPostCount()
        {
            var postDataAccess = new PostDataAccess(new MockPostRepo(), new MockPostValidator(), new MockAuthorRepo(), new MockAuthorValidator());
            var post           = new Post("", new Author("", 0), "");
            var listOfPosts    = new List <Post>()
            {
                post
            };

            new MockPostRepo().StubGetAllPosts(listOfPosts);
            var returnedCount = postDataAccess.GetPostCount();

            new MockPostRepo().AssertGetAllPostsCalled();
            Assert.Equal(listOfPosts.Count, returnedCount);
        }
Beispiel #22
0
        public void TestGetPostById_ValidID_Success()
        {
            var mockPostRepo   = new MockPostRepo();
            var postDataAccess = new PostDataAccess(mockPostRepo, new MockPostValidator(), new MockAuthorRepo(), new MockAuthorValidator());
            var post           = new Post("", new Author("", 0), "");
            var listOfPosts    = new List <Post>()
            {
                post
            };

            mockPostRepo.StubGetAllPosts(listOfPosts);
            var returnedPost = postDataAccess.GetPostById(post.PostID);

            mockPostRepo.AssertGetAllPostsCalled();
            Assert.NotNull(returnedPost);
            AssertPostsEqual(post, returnedPost);
        }
        public ActionResult GetAllPostOfStudent()
        {
            //var userInfo = dataAccess.GetUserInfoByID(2);
            var userInfo = (UserLoginModel)Session[Helper.Commons.USER_SEESION];
            var list     = new PostDataAccess().GetAllPostByUser(userInfo.UserID); // hard code
            var res      = list.Select(x => new SubmittionModel()
            {
                Sub_ID          = x.Sub_ID,
                Sub_Title       = x.Sub_Title,
                Department_ID   = userInfo.Department_ID,
                Department_Name = userInfo.Department,
                Description     = x.Sub_Description,
                Created_Date    = x.Created_Date.ToString()
            }).ToList();

            return(Json(res.OrderBy(x => x.Created_Date), JsonRequestBehavior.AllowGet));
        }
Beispiel #24
0
        static void Main(string[] args)
        {
            IPostRepository    postRepository    = new PostDataAccess();
            IUserRepository    userRepository    = new UserDataAccess();
            ICommentRepository commentRepository = new CommentDataAccess();

            var service        = new UserService(userRepository, postRepository);
            var commentService = new CommentService(userRepository, postRepository, commentRepository);
            var response       = service.GetUserActiveRespose(2);
            var userComments   = commentService.GetUserComments(1);

            foreach (var c in userComments.Comments)
            {
                Console.WriteLine(c.Text);
            }

            Console.ReadKey();
        }
Beispiel #25
0
        public void TestGetListOfPostsByAuthorID()
        {
            var mockPostRepo    = new MockPostRepo();
            var postDataAccess  = new PostDataAccess(mockPostRepo, new MockPostValidator(), new MockAuthorRepo(), new MockAuthorValidator());
            var postNotByAuthor = new Post("", new Author("NotAuthor", 1), "");
            var postByAuthor    = new Post("", new Author("Author", 0), "");
            var listOfPosts     = new List <Post>()
            {
                postByAuthor
            };


            mockPostRepo.StubGetAllPostsByAuthor(listOfPosts);

            var returnedListOfPosts = postDataAccess.GetListOfPostsByAuthorID(0);

            mockPostRepo.AssertGetAllPostsByAuthorCalled();
            AssertPostsEqual(postByAuthor, returnedListOfPosts[0]);
        }
Beispiel #26
0
        public void TestAddPost_ValidData_Success()
        {
            var mockPostRepo        = new MockPostRepo();
            var mockPostValidator   = new MockPostValidator();
            var mockAuthorValidator = new MockAuthorValidator();
            var postDataAccess      = new PostDataAccess(mockPostRepo, mockPostValidator, new MockAuthorRepo(), mockAuthorValidator);
            var author = new Author("author", 0);
            var post   = new Post("title", author, "body");

            mockPostValidator.StubValidPost(true);
            mockPostRepo.StubTryAddPostResult(post)
            .StubTryAddPostBool(true);
            mockAuthorValidator.StubIsValidAuthor(true);
            var returnedPost = postDataAccess.AddPost(post);

            mockPostValidator.AssertIsValidPostCalled();
            mockPostRepo.AssertTryAddPostCalled();
            mockAuthorValidator.AssertIsValidAuthorCalled();
            Assert.NotNull(returnedPost);
            AssertPostsEqual(post, returnedPost);
        }
Beispiel #27
0
        public void TestDeletePost_ValidData_Success()
        {
            var mockPostRepo      = new MockPostRepo();
            var mockPostValidator = new MockPostValidator();
            var postDataAccess    = new PostDataAccess(mockPostRepo, mockPostValidator, new MockAuthorRepo(), new MockAuthorValidator());
            var post        = new Post("", new Author("", 0), "");
            var listOfPosts = new List <Post>();

            listOfPosts.Add(post);
            mockPostValidator.StubPostExists(true);
            mockPostRepo.StubGetAllPosts(listOfPosts)
            .StubTryDeletePostBool(true)
            .StubTryDeletePostResult(post);
            var returnedPost = postDataAccess.DeletePost(post);

            mockPostValidator.AssertPostExistsCalled();
            mockPostRepo.AssertGetAllPostsCalled();
            mockPostRepo.AssertTryDeletePostCalled();
            Assert.NotNull(returnedPost);
            AssertPostsEqual(post, returnedPost);
        }
Beispiel #28
0
        public void TestGetSortedListOfPosts(PostComponent postComp)
        {
            var mockPostRepo   = new MockPostRepo();
            var postDataAccess = new PostDataAccess(mockPostRepo, new MockPostValidator(), new MockAuthorRepo(), new MockAuthorValidator());
            var aPost          = new Post("AAA", new Author("AAA", 0), "AAA", Convert.ToDateTime("1111-01-01T11:11:11.1111111Z"), Guid.Parse("11111111-1111-1111-1111-111111111111"));
            var bPost          = new Post("BBB", new Author("BBB", 1), "BBB", Convert.ToDateTime("1112-02-02T12:22:22.2222222Z"), Guid.Parse("22222222-2222-2222-2222-222222222222"));
            var cPost          = new Post("CCC", new Author("CCC", 2), "CCC", Convert.ToDateTime("1113-03-03T13:33:33.3333333Z"), Guid.Parse("33333333-3333-3333-3333-333333333333"));
            var listOfPosts    = new List <Post>()
            {
                cPost, aPost, bPost
            };

            mockPostRepo.StubGetAllPosts(listOfPosts);
            var returnedListOfPosts = postDataAccess.GetSortedListOfPosts(postComp);

            mockPostRepo.AssertGetAllPostsCalled();
            Assert.Equal(listOfPosts.Count, returnedListOfPosts.Count);
            AssertPostsEqual(aPost, returnedListOfPosts[0]);
            AssertPostsEqual(bPost, returnedListOfPosts[1]);
            AssertPostsEqual(cPost, returnedListOfPosts[2]);
        }
        public void PostDataAccessAdd_True()
        {
            Post post = new Post()
            {
                id                 = 1,
                date               = DateTime.Now,
                imgURL             = "",
                numberOfComments   = 1,
                postContent        = "test content 1",
                postPreviewContent = "preview 1",
                title              = "Post 1"
            };

            var            baseDataAccessMock = new Mock <IBaseDataAccess>();
            PostDataAccess postDataAccess     = new PostDataAccess(baseDataAccessMock.Object);

            baseDataAccessMock.Setup(m => m.Add(It.Is <SqlCommand>(c =>
                                                                   c.CommandType.Equals(CommandType.StoredProcedure) &&
                                                                   c.Parameters["@date"].Value.Equals(post.date) &&
                                                                   c.Parameters["@title"].Value.Equals(post.title) &&
                                                                   c.Parameters["@postPreviewContent"].Value.Equals(post.postPreviewContent) &&
                                                                   c.Parameters["@postContent"].Value.Equals(post.postContent) &&
                                                                   c.Parameters["@imgURL"].Value.Equals(post.imgURL) &&
                                                                   c.Parameters["@numberOfComments"].Value.Equals(post.numberOfComments)
                                                                   ))).Returns(1);

            int id = postDataAccess.AddPost(post);

            baseDataAccessMock.Verify((m => m.Add(It.Is <SqlCommand>(c =>
                                                                     c.CommandType.Equals(CommandType.StoredProcedure) &&
                                                                     c.Parameters["@date"].Value.Equals(post.date) &&
                                                                     c.Parameters["@title"].Value.Equals(post.title) &&
                                                                     c.Parameters["@postPreviewContent"].Value.Equals(post.postPreviewContent) &&
                                                                     c.Parameters["@postContent"].Value.Equals(post.postContent) &&
                                                                     c.Parameters["@imgURL"].Value.Equals(post.imgURL) &&
                                                                     c.Parameters["@numberOfComments"].Value.Equals(post.numberOfComments)
                                                                     ))), Times.Once());

            Assert.Equal(1, id);
        }
Beispiel #30
0
        static void Main(string[] args)
        {
            IPostRepository postRepository = new PostDataAccess();
            IUserRepository userRepository = new UserDataAccess();

            var service = new UserService(userRepository, postRepository);

            var response = service.GetUserActiveRespose(2);



            CommentDataAccess comment = new CommentDataAccess();
            var lista = comment.GetCommentsByUserId(8);

            foreach (var item in lista)
            {
                Console.WriteLine($" id : {item.Id} text : {item.Text}");
            }



            Console.ReadLine();
        }