private static string Execute(IPageTemplate template, string pageTemplateName, string modelCreator,
                                      string localRazorFile, object model, dynamic viewBag, ISource source,
                                      IInputData input, OutputData outputData)
        {
            string templateFile           = template.GetTemplateFile(source, input, outputData);
            PageTemplateInitData initData = new PageTemplateInitData(pageTemplateName, modelCreator);
            string razorFile;
            string layout;

            if (string.IsNullOrEmpty(localRazorFile))
            {
                razorFile = templateFile;
                layout    = null;
            }
            else
            {
                razorFile = localRazorFile;
                layout    = templateFile;
            }
            return(Execute(model, viewBag, initData, razorFile, layout, template, source, input, outputData));
        }