/// <summary> /// Validate slide. We guarantee that Validate() will be called after BuildUp() /// </summary> public virtual void Validate(SlideLoadingContext context) { var slideLoadingContext = new SlideBuildingContext(context, this); foreach (var block in Blocks) { block.Validate(slideLoadingContext); } }
/// <summary> /// Building slide and blocks, fill properties, initialize some values. Any work we need to do before work with slide. /// </summary> public virtual void BuildUp(SlideLoadingContext context) { Meta?.FixPaths(context.SlideFile); Info = new SlideInfo(context.Unit, context.SlideFile); if (Blocks == null) { Blocks = new SlideBlock[0]; } /* Validate block types. We should do it before building up blocks */ CheckBlockTypes(); /* ... and build blocks */ var slideLoadingContext = new SlideBuildingContext(context, this); Blocks = Blocks.SelectMany(b => b.BuildUp(slideLoadingContext, ImmutableHashSet <string> .Empty)).ToArray(); DefineBlockTypes(); }
public virtual IEnumerable <SlideBlock> BuildUp(SlideBuildingContext context, IImmutableSet <string> filesInProgress) { yield return(this); }
public virtual void Validate(SlideBuildingContext slideBuildingContext) { }