示例#1
0
        //MyDbContext Db = new MyDbContext();
        //
        // GET: /Wednesday/
        public ActionResult BlogIndex(int id = -1)
        {
            if (id <= 0)
            {
                //return RedirectToAction("CreateBlog");
            }
            BlogEntryViewModel vm = new BlogEntryViewModel();

            vm.CurrentBlogEntry = Db.BlogEntries.Where(b => b.Id == id).FirstOrDefault();
            vm.AllEntries       = Db.BlogEntries.ToList();
            vm.Comments         = Db.Comments.ToList();
            vm.AllTags          = Db.Tags.ToList();

            //int userid = (int)Session["userid"];
            //Db.CurrentBlogger = Db.People.Where(p => p.Id == userid).FirstOrDefault();
            if (vm.CurrentBlogEntry != null)
            {
                int authId;
                Int32.TryParse(vm.CurrentBlogEntry.AuthorId, out authId);
                vm.CurrentUser = Db.People.Where(p => p.Id == authId).FirstOrDefault();
                vm.CurrentBlogEntry.ArticleComments = Db.Comments.Where(p => p.blogId == vm.CurrentBlogEntry.Id).ToList();
                vm.CurrentBlogEntry.ArticleTags     = Db.Tags.Where(p => p.articleId == vm.CurrentBlogEntry.Id).ToList();
            }

            return(View(vm));
        }
示例#2
0
        //MyDbContext Db = new MyDbContext();
        //
        // GET: /Wednesday/
        public ActionResult BlogIndex(int id = -1)
        {
            if (id <= 0)
            {
                //return RedirectToAction("CreateBlog");
            }
            BlogEntryViewModel vm = new BlogEntryViewModel();
            vm.CurrentBlogEntry = Db.BlogEntries.Where(b => b.Id == id).FirstOrDefault();
            vm.AllEntries = Db.BlogEntries.ToList();
            vm.Comments = Db.Comments.ToList();
            vm.AllTags = Db.Tags.ToList();

            //int userid = (int)Session["userid"];
            //Db.CurrentBlogger = Db.People.Where(p => p.Id == userid).FirstOrDefault();
            if (vm.CurrentBlogEntry != null)
            {
                int authId;
                Int32.TryParse(vm.CurrentBlogEntry.AuthorId, out authId);
                vm.CurrentUser = Db.People.Where(p => p.Id == authId).FirstOrDefault();
                vm.CurrentBlogEntry.ArticleComments = Db.Comments.Where(p => p.blogId == vm.CurrentBlogEntry.Id).ToList();
                vm.CurrentBlogEntry.ArticleTags = Db.Tags.Where(p => p.articleId == vm.CurrentBlogEntry.Id).ToList();
            }

            return View(vm);
        }
示例#3
0
        public async Task <IActionResult> Create([Bind("Title,TitlePlacement,ShortDescription,Markdown,Html,ImageId,Image,ImagePlacement,ShowOnList,ShowFooter,Tags")] BlogEntryViewModel entry)
        {
            if (!ModelState.IsValid)
            {
                return(View(entry));
            }

            Image image = null;

            if (entry.ImageId != null)
            {
                image = db.Images.Find(entry.ImageId);
            }

            List <string> tagStrs = (!String.IsNullOrWhiteSpace(entry.Tags)) ? entry.Tags.Split(',').Select(s => s.Trim().ToLower()).ToList() : new List <string>();
            List <Tag>    tags    = new List <Tag>();

            foreach (string tagStr in tagStrs)
            {
                Tag tag = await db.Tags.Where(t => t.Name == tagStr).FirstOrDefaultAsync();

                if (tag == null)
                {
                    tag = new Tag {
                        Name = tagStr
                    };
                    await db.Tags.AddAsync(tag);
                }

                tags.Add(tag);
            }

            BlogEntry newEntry = new BlogEntry
            {
                Title            = entry.Title,
                ShortDescription = String.Join("\n",
                                               WebUtility.HtmlEncode(entry.ShortDescription)
                                               .Replace("\r", "")
                                               .Split("\n", StringSplitOptions.RemoveEmptyEntries)
                                               .Select(s => String.Format("<p>{0}</p>", s))),
                Markdown       = entry.Markdown,
                Html           = ShowcaseUtilities.SanitizeHtml(entry.Html),
                Image          = image,
                ImagePlacement = entry.ImagePlacement,
                TitlePlacement = entry.TitlePlacement,
                ShowOnList     = entry.ShowOnList,
                DateUploaded   = DateTimeOffset.Now,
                Tags           = tags
            };

            db.BlogEntries.Add(newEntry);

            await db.SaveChangesAsync();

            return(RedirectToAction(nameof(Show), new { id = newEntry.Id }));
        }
示例#4
0
        public virtual ActionResult Edit(int id, BlogEntryViewModel model)
        {
            try
            {
                // TODO: Add update logic here
                BlogEntry entry = new BlogEntry();
                UpdateModel(entry);
                RavenSession.Store(entry);

                return(RedirectToAction("Details", new { Id = entry.Id }));
            }
            catch
            {
                return(View());
            }
        }
示例#5
0
        public static BlogEntryViewModel Make(BlogEntry blogEntry)
        {
            var vm = new BlogEntryViewModel
            {
                Name             = blogEntry.CreatedBy.Name,
                Email            = blogEntry.CreatedBy.Email,
                BlogEntryId      = blogEntry.BlogEntryId,
                Body             = blogEntry.Body,
                CommentCount     = blogEntry.CommentCount,
                Comments         = BlogCommentViewModelFactory.Make(blogEntry.Comments),
                CommentsDisabled = blogEntry.CommentsDisabled,
                Created          = blogEntry.Created,
                Modified         = blogEntry.Modified,
                Title            = blogEntry.Title,
                UrlFriendlyId    = blogEntry.UrlFriendlyId,
                UserId           = blogEntry.CreatedBy.UserId
            };

            return(vm);
        }
示例#6
0
        public async Task <IActionResult> Edit([Bind("Id,Title,TitlePlacement,ShortDescription,Markdown,Html,ImageId,Image,ImagePlacement,ShowOnList,ShowFooter,Tags")] BlogEntryViewModel entry)
        {
            if (entry.Id == null)
            {
                return(BadRequest("\"id\" is null"));
            }

            BlogEntry oldEntry = await db.BlogEntries
                                 .Where(b => b.Id == entry.Id)
                                 .Include(b => b.Image)
                                 .Include(b => b.Tags)
                                 .FirstOrDefaultAsync();

            if (oldEntry == null)
            {
                return(NotFound("Portfolio Entry not found"));
            }

            Image image = null;

            if (entry.ImageId != null)
            {
                image = await db.Images.FindAsync(entry.ImageId);

                if (image == null)
                {
                    ModelState.AddModelError(nameof(entry.ImageId), String.Format("Image with id {0} not found;", entry.ImageId));
                }
            }

            List <string> tagStrs = (!String.IsNullOrWhiteSpace(entry.Tags)) ? entry.Tags.Split(',').Select(s => s.Trim().ToLower()).ToList() : new List <string>();
            List <Tag>    tags    = new List <Tag>();

            foreach (string tagStr in tagStrs)
            {
                Tag tag = await db.Tags.Where(t => t.Name == tagStr).FirstOrDefaultAsync();

                if (tag == null)
                {
                    tag = new Tag {
                        Name = tagStr
                    };
                    await db.Tags.AddAsync(tag);
                }

                tags.Add(tag);
            }

            oldEntry.Id               = (int)entry.Id;
            oldEntry.Title            = entry.Title;
            oldEntry.TitlePlacement   = entry.TitlePlacement;
            oldEntry.ShortDescription = String.Join("\n",
                                                    WebUtility.HtmlEncode(entry.ShortDescription)
                                                    .Replace("\r", "")
                                                    .Split("\n", StringSplitOptions.RemoveEmptyEntries)
                                                    .Select(s => String.Format("<p>{0}</p>", s)));
            oldEntry.Image          = image;
            oldEntry.ImagePlacement = entry.ImagePlacement;
            oldEntry.Markdown       = entry.Markdown;
            oldEntry.Html           = ShowcaseUtilities.SanitizeHtml(entry.Html);
            oldEntry.ShowOnList     = entry.ShowOnList;
            oldEntry.ShowFooter     = entry.ShowFooter;
            oldEntry.Tags           = tags;

            await db.SaveChangesAsync();

            return(RedirectToAction(nameof(Show), new { id = entry.Id }));
        }