public void When() { var repositoryFactory = new DomainRepositoryStubFactory(); _blogRepository = repositoryFactory.GetDomainRepository<Blog>(); _blogCommandHandlers = new BlogCommandHandlers(repositoryFactory); _createBlogCommand = new CreateBlogCommand("Title", "SubTitle", Guid.Empty, Guid.Empty); _blogCommandHandlers.Handle(_createBlogCommand); }
public virtual ActionResult Create() { ActionResult actionResult; if (RedirectIfBlogExists(out actionResult)) return actionResult; var createBlogCommand = new CreateBlogCommand(); return View("Create", createBlogCommand); }
public virtual ActionResult Create(CreateBlogCommand command) { ActionResult actionResult; if (RedirectIfBlogExists(out actionResult)) return actionResult; Func<bool> preCondition = () => _blogView.GetBlogs().Count() == 0; var user = _userView.GetUserByAuthenticationId(User.Identity.Name); Func<ActionResult> nextResult = () => RedirectToAction("Create", "Post"); Func<ActionResult> failResult = () => { throw new ApplicationException("Fail to create blog"); }; Func<ActionResult> validationFailFunc = () => View("Create", command); return ValidateAndSendCommand(command, nextResult, failResult, validationFailFunc: validationFailFunc, preCondition: preCondition); }