public ActionResult Create(string name, string lang, string title = "", string desc = "", string solution = "", string theme = "") { var app = App.Get(); if (app.Webs[name] != null) { throw new HttpException("There is a web named \"" + name + "\"."); } try { WebDecorator web = null; if (!string.IsNullOrEmpty(solution)) { web = app.Solutions.Install(solution, name, User.Identity.Name, title, desc, theme, lang); } else { web = app.CreateWeb(name, title, desc, lang, theme); if (!string.IsNullOrEmpty(theme)) { web.Theme = theme; } var defaultPage = web.CreatePage("Default"); } string webJson = JsonConvert.SerializeObject(web.ToObject()); return(Content(webJson, "application/json", Encoding.UTF8)); } catch (Exception e) { //var msg = e.Message; Exception innerExpt = e.InnerException; var errors = new StringBuilder(); errors.AppendLine(e.Message); if (app.Webs[name] != null) { App.Get().DataContext.Delete <Web>(w => w.Name.Equals(name, StringComparison.OrdinalIgnoreCase)); App.Get().DataContext.SaveChanges(); } while (innerExpt != null) { //msg = innerExpt.Message; errors.AppendLine(innerExpt.Message); innerExpt = innerExpt.InnerException; } throw new HttpException(errors.ToString()); } }