public async Task BlogPostBuilder_BuildsBlogWithMetaTag() { var author = Author.Create(new User(""), new AuthorProfile("", "", ""), Mock.Of <IAuthorValidator>()); var mock = new Mock <IAuthorService>(); mock.Setup(a => a.GetAuthor()).Returns(author); var authorService = mock.Object; var imageService = new Mock <IImageService>().Object; var builder = new BlogPostBuilder(authorService, imageService); var tags = new List <MetaTag>() { new MetaTag("description", "test description") }; var addBlogPostCommand = new AddBlogPostCommand() { ContentIntro = "Intro", Content = "Test", Subject = "Subject" }; var category = new Category("", 1, ""); var blogPost = await builder.WrittenByCurrentAuthor().WithCategory(category).WithContent(addBlogPostCommand) .WithMetaTags(tags).Build(); Assert.Single(blogPost.MetaTags); }
public async Task <IActionResult> AddPost(AddBlogPostViewModel model) { if (ModelState.IsValid) { var curUser = await _userManager.GetUserAsync(User); var author = await _qpa.ProcessAsync(new GetAuthorByAppUserIdQuery { Id = curUser.Id }); var abpc = new AddBlogPostCommand { Author = author, Title = model.Title, Content = model.Content, Description = model.Description, CreatedAt = DateTime.Now, ModifiedAt = DateTime.Now, Public = false, PublishOn = DateTime.Now.AddDays(7) }; var result = await _cp.ProcessAsync(abpc); if (result.Succeeded) { return(RedirectToAction("EditPost", new { id = result.Command.Id })); } else { ModelState.AddModelError("", "Error saving to database!"); return(View(model)); } } return(View(model)); }
public bool Add(BlogPost blogPost) { if (blogPost != null) { var dbCommand = new AddBlogPostCommand(dbContext, blogPost); dbCommand.Execut(); return(true); } return(false); }
public string AddPost(string blogid, string username, string password, Post post, bool publish) { if (validateUser(username, password)) { var author = getAuthor(username); var np = new AddBlogPostCommand() { Title = post.title, Author = author, Description = post.mt_excerpt, Content = post.description, CreatedAt = post.dateCreated, ModifiedAt = DateTime.Now, Public = publish, PublishOn = DateTime.Now, Image = getImgUrl(post.description), IsHtml = true }; var result = _cp.ProcessAsync(np).GetAwaiter().GetResult(); if (result.Succeeded) { _logger.LogInformation($"Successfully added post through metaweblog {post.title}"); if (post.categories.Any()) { var sc = new SetBlogPostCategoriesByStringArrayCommand { Categories = post.categories.ToList(), BlogPostId = result.Command.Id }; var scResult = _cp.ProcessAsync(sc).GetAwaiter().GetResult(); if (scResult.Succeeded) { _logger.LogInformation($"Successfully added categories for post {post.title} through metaweblog"); return(result.Command.Id.ToString()); } } else { return(result.Command.Id.ToString()); } } } _logger.LogError($"Error adding post through metaweblog {post.title}"); return("-1"); }
public async Task <IActionResult> AddPost(AddBlogPostViewModel model) { var content = Request.Form["editor1"]; if (ModelState.IsValid) { var curUser = await _userManager.GetUserAsync(User); var author = await _qpa.ProcessAsync(new GetAuthorByAppUserIdQuery { Id = curUser.Id }); var abpc = new AddBlogPostCommand { Author = author, Title = model.Title, //Content = model.Content, Content = content, Description = model.Description, CreatedAt = DateTime.Now, ModifiedAt = DateTime.Now, Public = false, PublishOn = DateTime.Now.AddDays(7) }; var result = await _cp.ProcessAsync(abpc); if (result.Succeeded) { _logger.LogInformation("Added BlogPost {0} by {1} {2}", model.Title, author.FirstName, author.LastName); return(RedirectToAction("EditPost", new { id = result.Command.Id })); } else { _logger.LogWarning("Unable to add BlogPost {0} by {1} {2}", model.Title, author.FirstName, author.LastName); ModelState.AddModelError("", "Error saving to database!"); return(View(model)); } } return(View(model)); }
public async Task AddBlogPostCommandHandler_AddsBlog() { var imageService = TestContext.CreateImageService(); var builder = new BlogPostBuilder(_authorService, imageService); var handlerContext = TestContext.CreateHandlerContext <BlogPostSummaryViewModel>(RequestDbContext, CreateMapper()); var addBlogPostCommandHandler = new AddBlogPostCommandHandler(handlerContext, builder); var category = await RequestDbContext.Categories.FirstOrDefaultAsync(); var addBlogPostCommand = new AddBlogPostCommand() { Subject = "Test", ContentIntro = "Test", Content = "Test", CategoryId = category.Id }; var result = await addBlogPostCommandHandler.Handle(addBlogPostCommand, CancellationToken.None); Assert.InRange(result.Id, 1, int.MaxValue); Assert.Equal(category.Name, result.Category); }
public async Task AddBlogPostCommandHandler_WithFile_AddsBlog() { var mapper = CreateMapper(); var imageFactory = TestContext.CreateImageService(); var builder = new BlogPostBuilder(_authorService, imageFactory); var handlerContext = TestContext.CreateHandlerContext <BlogPostSummaryViewModel>(RequestDbContext, mapper); var handler = new AddBlogPostCommandHandler(handlerContext, builder); var fileMock = TestContext.CreateFileMock(); var file = fileMock.Object; var category = await RequestDbContext.Categories.FirstOrDefaultAsync(); var message = new AddBlogPostCommand() { Subject = "Test", Content = "Test", ContentIntro = "Test", File = file, CategoryId = category.Id }; var result = await handler.Handle(message, CancellationToken.None); Assert.NotNull(result.Image.UriPath); }
public async Task <ActionResult <BlogPostSummaryViewModel> > Add([FromForm] AddBlogPostCommand command) { return(await _mediator.Send(command)); }