public static PostForm ToForm(this Post post) { var result = new PostForm(); result.Id = post.Id; result.Published = post.Published != null && post.Published <= DateTime.UtcNow; result.Title = post.Title ?? string.Empty; result.Url = post.Url ?? string.Empty; result.Tags = string.Join(", ", post.Tags.Select(t => t.Value)); return result; }
public JsonResult Update(PostForm form) { if (ModelState.IsValid) { blogManager.Update(form); if (form.Published) blogManager.Publish(form.Id); return JsonNet(new {success = true, published = form.Published}); } return JsonNet(new {success = false}); }
public void Update(PostForm form) { var existingPost = Match(form.Url); if (existingPost != null && existingPost.Id != form.Id) throw new ApplicationException("A post with this url already exists"); var existingPage = contentManager.Page.Match(form.Url); if (existingPage != null) throw new ApplicationException("A page with this url already exists"); var post = Load(form.Id); post.Title = form.Title; post.Url = form.Url == null ? post.Url : form.Url.NormalizeUrl(); post.Tags.Clear(); if (!string.IsNullOrWhiteSpace(form.Tags)) { post.Tags.AddRange( form.Tags.Split(',').Where(t => t.Trim() != "").Select( t => new Tag(t.Trim().ToLowerInvariant()))); } post.LastModified = DateTime.UtcNow; session.SaveChanges(); contentManager.Page.ClearOutputCacheDependency(HttpContext.Current); }