/// <summary> /// Gets the content place holders. /// </summary> private List <ContentPlaceHolder> GetMasterPageContentPlaceHolders(DotvvmControl masterPage) { var placeHolders = masterPage.GetAllDescendants().OfType <ContentPlaceHolder>().ToList(); // check that no placeholder is nested in another one and that each one has valid ID foreach (var placeHolder in placeHolders) { placeHolder.EnsureControlHasId(autoGenerate: false); if (placeHolder.GetAllAncestors().Intersect(placeHolders).Any()) { throw new Exception(string.Format("The ContentPlaceHolder with ID '{0}' cannot be nested in another ContentPlaceHolder!", placeHolder.ID)); // TODO: exception handling } } return(placeHolders); }
public void ApplyTransforms(DotvvmControl root, IDotvvmRequestContext context) { ApplyTransforms(root.GetAllDescendants().ToList(), context); }
/// <summary> /// Gets the content place holders. /// </summary> private List<ContentPlaceHolder> GetMasterPageContentPlaceHolders(DotvvmControl masterPage) { var placeHolders = masterPage.GetAllDescendants().OfType<ContentPlaceHolder>().ToList(); // check that no placeholder is nested in another one and that each one has valid ID foreach (var placeHolder in placeHolders) { if (placeHolder.ID == null) throw new DotvvmControlException(placeHolder, "PlaceHolder has to have a ID"); if (placeHolder.GetAllAncestors().Intersect(placeHolders).Any()) { throw new Exception(string.Format("The ContentPlaceHolder with ID '{0}' cannot be nested in another ContentPlaceHolder!", placeHolder.ID)); // TODO: exception handling } } return placeHolders; }