public BlogComposer(IBasePageProvider blogProvider, IReadOnlyDictionary<string, Func<LayoutType,HtmlDocument>> composedFragments)
        {
            Guard.VerifyArgumentNotNull(blogProvider, nameof(blogProvider));
            Guard.VerifyArgumentNotNull(composedFragments, nameof(composedFragments));

            _blogProvider = blogProvider;
            _composedFragments = composedFragments;

            ensureTemplateHtmlIsValid();
        }
        public FragmentComposer(FragmentProvider fragmentProvider, PageProvider pageProvider)
        {
            Guard.VerifyArgumentNotNull(fragmentProvider, nameof(fragmentProvider));
            Guard.VerifyArgumentNotNull(pageProvider, nameof(pageProvider));

            _fragmentProvider           = fragmentProvider;
            _pageProvider               = pageProvider;
            _fragmentComposingFunctions = new Dictionary <string, Func <LayoutType, HtmlDocument> >();

            compose();
        }