/// <summary>
        /// Loads the template.
        /// </summary>
        public void Load()
        {
            this.logger.Log(TraceEventType.Verbose, "Loading template.");
            this.buildingBlockCache.Clear();
            IWordDocument tempDocument = this.GetDocument();

            tempDocument.StartUpdate();
            try
            {
                this.layouts = this.wordTemplate.EnumerateBuildingBlockCategories()
                               .Where(category => this.CategoryIsLayout(category))
                               .Select(category => this.GetLayoutForCategory(tempDocument, category)).ToList();
            }
            finally
            {
                tempDocument.EndUpdate();
            }
        }