public Post Save(string slug, Post content)
        {
            var isNew = string.IsNullOrEmpty(slug);
            if (isNew)
            {
                // No slug was specified, so we need to get the next one
                var docs = db.GetCollection("sequences");

                docs.EnsureIndex(IndexKeys.Ascending("Name"), IndexOptions.SetUnique(true));

                var sequence = docs.FindAndModify(Query.EQ("Name", "slug"), null, Update.Inc("Current", 1), true, true)
                                   .GetModifiedDocumentAs<Incrementor>();

                slug = Base36Encoder.Encode(sequence.Current);
            }

            content.Slug = slug;

            content.Version = isNew ? 1 : GetLatestVersion(slug) + 1;

            db.GetCollection<Post>("posts").Save(content, SafeMode.True);

            return content;
        }
 private IEnumerable<EditorError> GetErrorsInPost(Post post)
 {
     return compiler.GetCompilationErrors(post);
 }
        private static Post BuildSamplePost()
        {
            var post = new Post();
             var builder = new StringBuilder();

             post.Classes = builder.AppendLine("class Person")
                               .AppendLine("{")
                               .AppendLine("    public Person(string name)")
                               .AppendLine("    {")
                               .AppendLine("        Name = name;")
                               .AppendLine("    }")
                               .AppendLine()
                               .AppendLine("    public string Name { get; private set; }")
                               .AppendLine()
                               .AppendLine("    public string Greet()")
                               .AppendLine("    {")
                               .AppendLine("        if (Name == null)")
                               .AppendLine("            return \"Hello, stranger!\";")
                               .AppendLine()
                               .AppendLine("        return string.Format(\"Hello, {0}!\", Name);")
                               .AppendLine("    }")
                               .AppendLine("}")
                               .ToString();

             post.Content = builder.Clear()
                               .AppendLine("var person = new Person(name: null);")
                               .AppendLine()
                               .AppendLine("return person.Greet();")
                               .ToString();

             return post;
        }