Esempio n. 1
0
        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());
            }
        }