} //ShowApplyForm

        private void ShowCreateForm(object sender, EventArgs e)
        {
            SharePointVersion version = GetVersion("to create the template from");

            if (version != SharePointVersion.SharePoint_Invalid)
            {
                SourceWin createForm = new SourceWin();

                createForm.FormClosed += new FormClosedEventHandler(DestroyForm);
                createForm.Text        = "Create Template From ";

                switch (version)
                {
                case SharePointVersion.SharePoint_2013_On_Premises:
                    createForm.Text += Constants.SharePoint_2013_On_Premises;

                    break;

                case SharePointVersion.SharePoint_2016_On_Premises:
                    createForm.Text += Constants.SharePoint_2016_On_Premises;

                    break;

                case SharePointVersion.SharePoint_2016_OnLine:
                    createForm.Text += Constants.SharePoint_2016_Online;

                    break;

                default:
                    break;
                }

                createForm.CreateTemplate = CreateSPTemplate;

                createForm.SelectedVersion = version;

                createForm.SaveTemplate = SaveFile;

                createForm.SetStatusBarText = SetStatusBarText;

                createForm.MdiParent = this;

                createForm.Show();
            }
        } //ShowCreateForm
        } //FinishProgressWin

        private bool CreateSPTemplate(Form callee, ProvisioningOptions provisioningOptions)
        {
            SourceWin callForm = callee as SourceWin;
            bool      result   = false;

            callForm.Visible = false;
            provisioningOptions.SharePointVersion = callForm.SelectedVersion;

            string spVersionTitle = EnsureVersionLoaded(provisioningOptions.SharePointVersion);

            ProgressWin progressWin = StartProgressWin(true, spVersionTitle);

            _lbOutput = progressWin.ResultOutput;

            switch (provisioningOptions.SharePointVersion)
            {
            case SharePointVersion.SharePoint_2013_On_Premises:
                result = _sp2013OnPrem.CreateProvisioningTemplate(provisioningOptions, WriteMessage, WriteMessageRange);

                break;

            case SharePointVersion.SharePoint_2016_On_Premises:
                result = _sp2016OnPrem.CreateProvisioningTemplate(provisioningOptions, WriteMessage, WriteMessageRange);

                break;

            case SharePointVersion.SharePoint_2016_OnLine:
                result = _sp2016Online.CreateProvisioningTemplate(provisioningOptions, WriteMessage, WriteMessageRange);

                break;

            default:
                break;
            }

            callForm.Visible = true;

            FinishProgressWin(progressWin);
            return(result);
        } //CreateSPTemplate