public static MemoryRepository<Post> GetPostsRepository() { var postsRepository = new MemoryRepository<Post>(); var users = GetUsersRepository(); var threads = GetThreadsRepository(); for (int i = 0; i < 20; i++) { var thread = threads.GetById(i % 5); var user = users.GetById("id" + i % 10); var post = new Post { Content = "content" + i, Id = i, PostDate = new DateTime(2015, 11, i + 1), ThreadId = thread.Id, Thread = thread, UserId = user.Id, User = user }; postsRepository.Add(post); } return postsRepository; }
public static IPostsService GetPostsService() { var post = new Post { Content = "test post", Id = 1, PostDate = new DateTime(2015, 11, 1), ThreadId = 1, UserId = "id1", User = new User { Nickname = "testuser" }, Thread = new Thread { Title = "testTitle" }, Comments = new List<Comment>(), Votes = new List<Vote>() }; var posts = new List<Post>() { post }; var postsService = new Mock<IPostsService>(); postsService.Setup(p => p.Add(It.IsAny<string>(), It.Is<int>(t => t > 100), It.IsAny<string>())).Throws<ArgumentException>(); postsService.Setup(p => p.Add(It.IsAny<string>(), It.Is<int>(t => t < 100), It.IsAny<string>())).Returns(1); postsService.Setup(p => p.GetById(It.IsAny<int>())).Returns(post); postsService.Setup(p => p.GetByThread(It.IsAny<int>())).Returns(posts.AsQueryable()); postsService.Setup(p => p.GetByUser(It.Is<string>(s => s != "not exist"))).Returns(posts.AsQueryable()); postsService.Setup(p => p.GetByUser(It.Is<string>(s => s == "not exist"))).Throws<ArgumentException>(); postsService.Setup(p => p.Update(It.IsAny<int>(), It.IsAny<string>())).Verifiable(); return postsService.Object; }
public ActionResult Ask(AskInputModel input) { if (ModelState.IsValid) { var userId = this.User.Identity.GetUserId(); var posts = new Post { Title = input.Title, Content = sanitizer.Sanitize(input.Content), AuthorId = userId, // TODO: Tags }; this.posts.Add(posts); this.posts.SaveChanges(); return this.RedirectToAction("Display", new {id = posts.Id, url = "new" }); } return this.View(input); }
public int Add(string content, int threadId, string username) { var thread = this.threadsRepository.GetById(threadId); if (thread == null) { throw new ArgumentException("Thread not found"); } var user = this.FindUser(username); var newPost = new Post { Content = content, PostDate = DateTime.Now, UserId = user.Id, ThreadId = threadId }; this.postsRepository.Add(newPost); this.postsRepository.SaveChanges(); var threadCreator = thread.User; if (user.Id != threadCreator.Id) { var threadUserNotification = new Notification { Message = user.Nickname + NotificationMessage, DateCreated = newPost.PostDate }; threadCreator.Notifications.Add(threadUserNotification); this.usersRepository.SaveChanges(); // Implement notifications functionality or message queues Client client = new Client(MessageQueueProjectId, MessageQueueToken); Queue queue = client.Queue( MessageQueueName); queue.Push(user.Nickname + NotificationMessage); } return newPost.Id; }