public async Task Add_new_drafts()
        {
            var entry = new DraftSaveCommand
            {
                Title      = "JS",
                Summary    = "Learn JS",
                Tags       = "js, es",
                Language   = Language.English,
                Content    = "<p>text</p>",
                EnglishUrl = "learn-js"
            };

            var result = await _handler.Handle(entry, default);

            result.Should().BeEquivalentTo(new
            {
                PostUrl   = (string)null,
                Published = false
            });

            using (var ctx = _context.GetDb())
            {
                ctx.Drafts.Should().HaveCount(1);
                ctx.Drafts.Single().Should().BeEquivalentTo(new
                {
                    Id         = 1,
                    Title      = "JS",
                    Summary    = "Learn JS",
                    Language   = Language.English,
                    Content    = "<p>text</p>",
                    EnglishUrl = "learn-js"
                });
            }
        }
        public async Task <IActionResult> SavePost(DraftSaveCommand command)
        {
            var result = await _mediator.Send(command);

            if (result.Failed)
            {
                ModelState.AddModelErrors(result.Errors);
                return(View(nameof(Post), command));
            }

            if (result.Published)
            {
                var lang = command.Language == Language.English ? "en" : "fa";
                return(RedirectToAction("Post", "Home", new { language = lang, urlTitle = result.PostUrl }));
            }

            return(RedirectToAction(nameof(Index)));
        }