/// <summary>
 /// Updates the settings.
 /// </summary>
 /// <param name="settings">The settings.</param>
 /// <exception cref="System.NotImplementedException"></exception>
 public void UpdateSettings(BlogSetting settings)
 {
   ExecuteQuery(CACHE_KEY.FormatWith("Settings"),
     (con) =>
     {
       con.Execute(Properties.Resources.BlogSettings_Update, settings);
       Cache.RemoveFromCache(CACHE_KEY.FormatWith("Settings"));
     });
 }
    /// <summary>
    /// Gets the settings.
    /// </summary>
    /// <returns></returns>
    /// <exception cref="System.NotImplementedException"></exception>
    public BlogSetting GetSettings()
    {
      return PerformCachedQuery(CACHE_KEY.FormatWith("Settings"),
        (con) =>
        {
          var bs = con.Query<BlogSetting>(Properties.Resources.BlogSettings_Get).SingleOrDefault();
          if (bs == null)
          {
            bs = new BlogSetting { Title = "Unnamed Blog", SubTitle = "" };
            con.Execute(Properties.Resources.BlogSettings_Update, bs);
          }

          return bs;
        });
    }
 /// <summary>
 /// Saves the settings.
 /// </summary>
 /// <param name="settings">The settings.</param>
 /// <returns></returns>
 public ActionResult SaveSettings(BlogSetting settings)
 {
   if (ModelState.IsValid)
   {
     try
     {
       BlogRepos.UpdateSettings(settings);
       Response.StatusCode = 200;
       return Json(new { Success = true }, JsonRequestBehavior.DenyGet);
     }
     catch (Exception ex)
     {
       Response.StatusCode = 400;
       return Json(new { Success = false, Message = ex.Message }, JsonRequestBehavior.DenyGet);
     }
   }
   else
   {
     ModelState.AddModelError("", "The settings are not valid.");
     Response.StatusCode = 400;
     return Json(new { Success = false, Message = "The settings are not valid." }, JsonRequestBehavior.DenyGet);
   }
 }
 public BlogPostViewModel(BlogSetting blogSettings, BlogPost post)
   : this()
 {
   BlogSettings = blogSettings;
   Post = post;
 }