private IPage generatePageFromTemaplate(LbTemplate template)
{
if (template == null)
throw new ArgumentNullException("template");
var model = Type.GetType("LiveBoard.PageTemplate.Model." + template.TemplateModel);
if (model == null)
throw new ArgumentException("Template model not found.");
var page = (IPage)Activator.CreateInstance(model);
page.TemplateKey = template.Key;
page.View = template.TemplateView;
page.Title = "Page " + (ActiveBoard.Board.Pages.Count + 1);
page.Duration = TimeSpan.FromSeconds(5.0d);
page.IsVisible = true;
page.Guid = Guid.NewGuid().ToString();
page.Data = new List<LbPageData>();
foreach (var d in template.DataList)
{
var copyData = LbPageData.FromXml(page.TemplateKey, d.ToXml(true));
((List<LbPageData>)page.Data).Add(copyData);
}
return page;
}