public static CanvasView Get(string alias, bool isAuthenticated)
{
try
{
var View = new CanvasView();
int pageId = UmbracoContext.Current.PageId.Value;
if (isAuthenticated)
{
var cs = ApplicationContext.Current.Services.ContentService;
var page = cs.GetById(pageId);
var model = Repository.GetObjectById(pageId);
// Find area recurcivly
if (model.Areas.All(x => x.Alias != alias))
{
// Did not find area
// Check if there is a root area, create it if not.
Log.Info("Canvas - Did not find area, try to create it: " + alias);
var area = new CanvasArea();
area.Alias = alias;
if (model.Areas.Any())
{
// Append new
model.Areas.Add(area);
Repository.SaveJson(model, pageId);
page = cs.GetById(pageId);
}
else
{
// Create new
var areaModel = new CanvasModel();
areaModel.Areas.Add(area);
Repository.SaveJson(areaModel, pageId);
page = cs.GetById(pageId);
}
}
View.page = page;
View.viewName = "/Views/Canvas/Backend.cshtml";
}
else
{
View.node = UmbracoContext.Current.ContentCache.GetById(pageId);
View.viewName = "/Views/Canvas/FrontEnd.cshtml";
}
View.alias = alias;
return View;
}
catch (Exception ex)
{
Log.Error("Canvas error on Get in ViewHelper.", ex);
return null;
}
}