示例#1
0
        public async Task <IActionResult> PostNew(BlogPostEditViewModel blogPostChanges)
        {
            if (!ModelState.IsValid)
            {
                return(View("PostEdit", blogPostChanges));
            }


            var blogPost = new BlogPost
            {
                PostId         = Guid.NewGuid().ToString(),
                Title          = blogPostChanges.Title,
                Content        = blogPostChanges.Content,
                AuthorId       = User.Claims.FirstOrDefault(p => p.Type == ClaimTypes.NameIdentifier).Value,
                AuthorUsername = User.Identity.Name,
                DateCreated    = DateTime.UtcNow,
            };

            //Insert the new blog post into the database.
            await _blogDbService.UpsertBlogPostAsync(blogPost);

            //Show the view with a message that the blog post has been created.
            ViewBag.Success = true;

            return(View("PostEdit", blogPostChanges));
        }
示例#2
0
        public async Task <IActionResult> PostEdit(string postId, BlogPostEditViewModel blogPostChanges)
        {
            if (!ModelState.IsValid)
            {
                return(View(blogPostChanges));
            }

            var bp = await _blogDbService.GetBlogPostAsync(postId);

            if (bp == null)
            {
                return(View("PostNotFound"));
            }

            bp.Title   = blogPostChanges.Title;
            bp.Content = blogPostChanges.Content;

            //Update the database with these changes.
            await _blogDbService.UpsertBlogPostAsync(bp);

            //Show the view with a message that the blog post has been updated.
            ViewBag.Success = true;

            return(View(blogPostChanges));
        }
示例#3
0
        public ActionResult Edit(BlogPostEditViewModel blogPostViewModel)
        {
            #region Move to a service
            _blogContext.BlogPosts.Attach(blogPostViewModel.Post);
            _blogContext.SetModified(blogPostViewModel.Post);
            _blogContext.UpdateBlogPostDependencies(blogPostViewModel.Post);
            blogPostViewModel.SetPay();

            if (blogPostViewModel.Post.WordpressId != 0)
            {
                SyncToWordpress(blogPostViewModel.Post);
            }

            InitializeTrelloService();
            _writingCalendarService.EditCard(blogPostViewModel.Post);

            _blogContext.SaveChanges();
            #endregion

            if (ModelState.IsValid)
            {
                return(RedirectToAction("Edit", new { postId = blogPostViewModel.Post.Id }));
            }
            else
            {
                return(Edit(blogPostViewModel.Post.Id));
            }
        }
示例#4
0
        public async Task <IActionResult> Edit(BlogPostEditViewModel input)
        {
            if (ModelState.IsValid)
            {
                try
                {
                    var entity = await this.manager.UpdateBlogPost(input);

                    base.SetActionSuccessMessageInTempData("Информацията за публикацията е обновена.");
                    return(RedirectToAction("Edit", new { id = input.Id }));
                }
                catch (Exception ex)
                {
                    TempData["error"] = ex.Message;
                    return(RedirectToAction("Edit", new { id = input.Id }));
                }
            }
            else
            {
                ViewBag.ActiveTab = "tab-1";
                IQueryable <Paragraph> paragraphs = this.manager.GetParagraphsForBlog(input.Id);
                input.Paragraphs = paragraphs.Select(ParagraphEditViewModel.ExpressionFromParagraph).OrderBy(p => p.Position).ToList();
                return(View(input));
            }
        }
示例#5
0
        public void Filter_Out_Editors_Not_In_Our_Systems()
        {
            Editor.IsInOurSystems = false;

            var target = new BlogPostEditViewModel(new BlogPost(), Context);

            target.Editors.ShouldBeEmpty();
        }
示例#6
0
        public IActionResult BlogPostEdit(int blogId)
        {
            BlogPostEditViewModel blogPostEditViewModel = new BlogPostEditViewModel()
            {
                BlogPost = _blogPostService.GetByBlogPostId(blogId),
            };

            return(View(blogPostEditViewModel));
        }
示例#7
0
        public IActionResult PostNew()
        {
            var m = new BlogPostEditViewModel
            {
                Title   = "",
                Content = ""
            };

            return(View("PostEdit", m));
        }
示例#8
0
        public void Have_Editors_Sorted_By_FirstName()
        {
            const string nameThatShouldBeFirst = "AAAAA";

            Context.Editors.Add(new Editor()
            {
                Id = 1231234, FirstName = nameThatShouldBeFirst, LastName = "Whatever", IsInOurSystems = true, IsActive = true
            });

            var target = new BlogPostEditViewModel(new BlogPost(), Context);

            target.Editors.First().Text.ShouldContain(nameThatShouldBeFirst);
        }
示例#9
0
        public async Task <IActionResult> PostEdit(string postId)
        {
            var bp = await _blogDbService.GetBlogPostAsync(postId);

            if (bp == null)
            {
                return(View("PostNotFound"));
            }

            var m = new BlogPostEditViewModel
            {
                Title   = bp.Title,
                Content = bp.Content
            };

            return(View(m));
        }
        public async Task <IActionResult> Edit(int id, [Bind("Id,Title,Content")] BlogPostEditViewModel blogPost)
        {
            if (ModelState.IsValid)
            {
                try
                {
                    var user = await this.userManager.GetUserAsync(HttpContext.User);

                    await this.blogPostService.Edit(id, blogPost.Id, blogPost.Title, blogPost.Content, user.UserName);

                    this.logger.LogInformation("Editing Post.");

                    return(RedirectToLocal("Index", "Home"));
                }
                catch (EntityIsNullException ex)
                {
                    this.logger.LogError(ex.Message);

                    return(NotFound());
                }
                catch (DbUpdateConcurrencyException ex)
                {
                    this.logger.LogError(ex.Message);

                    return(NotFound());
                }
                catch (Exception ex)
                {
                    this.logger.LogError(ex.Message);

                    return(NotFound());
                }
            }

            return(View(blogPost));
        }
示例#11
0
        public void Have_An_Editor_When_One_Exists_In_Context()
        {
            var target = new BlogPostEditViewModel(new BlogPost(), Context);

            target.Editors.Count().ShouldBe(1);
        }
示例#12
0
        public void Have_An_Empty_Editors_List_When_No_Context_Is_Specified()
        {
            var target = new BlogPostEditViewModel();

            target.Editors.ShouldBeEmpty();
        }
示例#13
0
        public void Have_An_Empty_Authors_List_When_Context_Has_No_Authors()
        {
            var target = new BlogPostEditViewModel(new BlogPost(), EntityFrameworkMock.Create <BlogContext>());

            target.Authors.ShouldBeEmpty();
        }