private string runImportTask(WizardDeployment wizardDeployment)
        {
            if (traceSwitch.TraceVerbose)
            {
                trace.TraceVerbose("runImportTask: Entered.");
            }

            string sResult = string.Empty;
            ImportOperationResult importResult = null;

            Console.WriteLine("Running import..");

            try
            {
                importResult = wizardDeployment.RunImport();
            }
            catch (Exception e)
            {
                if (traceSwitch.TraceError)
                {
                    trace.TraceError("runImportTask: Exception caught whilst running import: '{0}'.", e);
                }

                sResult = string.Format("An unexpected exception occurred whilst preparing and running the import. " +
                                        "\n\nException details: \n\n{0}\n\n", importResult.Message);
            }

            if (importResult.Outcome == ResultType.Success)
            {
                sResult = string.Format("Completed import of file '{0}'. Please see log file at '{1}' to check results.",
                                        wizardDeployment.ImportSettings.BaseFileName, wizardDeployment.ImportSettings.LogFilePath);
            }
            else if (importResult.Outcome == ResultType.Failure)
            {
                sResult = string.Format("An error occurred whilst running the import. " +
                                        "\n\nException details: \n\n{0}", importResult.Message);
            }

            if (traceSwitch.TraceVerbose)
            {
                trace.TraceVerbose("runImportTask: Returning '{0}'.", sResult);
            }

            return(sResult);
        }
示例#2
0
        public ImportOperationResult RunImport()
        {
            if (traceSwitch.TraceVerbose)
            {
                trace.TraceVerbose("RunImport: Entered RunImport().");
            }

            ImportOperationResult importResult;
            SPChangeToken         startChangeToken = null;
            SPChangeToken         endChangeToken   = null;
            string destinationRootWebUrl           = null;

            if (traceSwitch.TraceInfo)
            {
                trace.TraceInfo("RunImport: Initialising SPSite object with URL '{0}'.",
                                ImportSettings.SiteUrl);
            }

            using (SPSite destinationSite = new SPSite(ImportSettings.SiteUrl))
            {
                // Get the change token from the destination site..
                startChangeToken = destinationSite.CurrentChangeToken;

                if (traceSwitch.TraceInfo)
                {
                    trace.TraceInfo("RunImport: StartChangeToken is '{0}'.",
                                    startChangeToken.ToString());
                }

                // Save the root Web URL for future use..
                destinationRootWebUrl = destinationSite.RootWeb.ServerRelativeUrl;

                using (SPImport import = new SPImport(ImportSettings))
                {
                    import.Started         += new EventHandler <SPDeploymentEventArgs>(import_Started);
                    import.ObjectImported  += new EventHandler <SPObjectImportedEventArgs>(import_ObjectImported);
                    import.ProgressUpdated += new EventHandler <SPDeploymentEventArgs>(import_ProgressUpdated);
                    import.Completed       += new EventHandler <SPDeploymentEventArgs>(import_Completed);

                    if (traceSwitch.TraceInfo)
                    {
                        trace.TraceInfo("RunImport: Wired event handlers, about to call Run()..");
                    }

                    // initialise to default..
                    importResult = new ImportOperationResult(ResultType.Failure);

                    try
                    {
                        import.Run();

                        if (traceSwitch.TraceInfo)
                        {
                            trace.TraceInfo("RunImport: Import completed successfully.");
                        }

                        importResult = new ImportOperationResult(ResultType.Success);
                    }
                    catch (Exception e)
                    {
                        if (traceSwitch.TraceError)
                        {
                            trace.TraceError("RunImport: Exception caught whilst running import: '{0}'.", e);
                        }

                        importResult = new ImportOperationResult(ResultType.Failure, e.ToString());
                    }

                    // Get the change token from the destination site AFTER import..
                    endChangeToken = destinationSite.CurrentChangeToken;

                    if (traceSwitch.TraceInfo)
                    {
                        trace.TraceInfo("RunImport: End change token is '{0}', attempting to set publish schedule.",
                                        endChangeToken.ToString());
                    }

                    attemptPublishScheduleSet(startChangeToken, endChangeToken, destinationSite);
                }
            }

            if (traceSwitch.TraceVerbose)
            {
                trace.TraceVerbose("RunImport: Exiting RunImport().");
            }

            return(importResult);
        }
示例#3
0
        public ImportOperationResult RunImport()
        {
            if (traceSwitch.TraceVerbose)
            {
                trace.TraceVerbose("RunImport: Entered RunImport().");
            }

            ImportOperationResult importResult;
            SPChangeToken startChangeToken = null;
            SPChangeToken endChangeToken = null;
            string destinationRootWebUrl = null;

            if (traceSwitch.TraceInfo)
            {
                trace.TraceInfo("RunImport: Initialising SPSite object with URL '{0}'.",
                    ImportSettings.SiteUrl);
            }

            using (SPSite destinationSite = new SPSite(ImportSettings.SiteUrl))
            {
                // Get the change token from the destination site..
                startChangeToken = destinationSite.CurrentChangeToken;

                if (traceSwitch.TraceInfo)
                {
                    trace.TraceInfo("RunImport: StartChangeToken is '{0}'.",
                        startChangeToken.ToString());
                }

                // Save the root Web URL for future use..
                destinationRootWebUrl = destinationSite.RootWeb.ServerRelativeUrl;

                using (SPImport import = new SPImport(ImportSettings))
                {
                    import.Started += new EventHandler<SPDeploymentEventArgs>(import_Started);
                    import.ObjectImported += new EventHandler<SPObjectImportedEventArgs>(import_ObjectImported);
                    import.ProgressUpdated += new EventHandler<SPDeploymentEventArgs>(import_ProgressUpdated);
                    import.Completed += new EventHandler<SPDeploymentEventArgs>(import_Completed);

                    if (traceSwitch.TraceInfo)
                    {
                        trace.TraceInfo("RunImport: Wired event handlers, about to call Run()..");
                    }

                    // initialise to default..
                    importResult = new ImportOperationResult(ResultType.Failure);

                    try
                    {
                        import.Run();

                        if (traceSwitch.TraceInfo)
                        {
                            trace.TraceInfo("RunImport: Import completed successfully.");
                        }

                        importResult = new ImportOperationResult(ResultType.Success);
                    }
                    catch (Exception e)
                    {
                        if (traceSwitch.TraceError)
                        {
                            trace.TraceError("RunImport: Exception caught whilst running import: '{0}'.", e);
                        }

                        importResult = new ImportOperationResult(ResultType.Failure, e.ToString());
                    }

                    // Get the change token from the destination site AFTER import..
                    endChangeToken = destinationSite.CurrentChangeToken;

                    if (traceSwitch.TraceInfo)
                    {
                        trace.TraceInfo("RunImport: End change token is '{0}', attempting to set publish schedule.", 
                            endChangeToken.ToString());
                    }

                    attemptPublishScheduleSet(startChangeToken, endChangeToken, destinationSite);
                }
            }

            if (traceSwitch.TraceVerbose)
            {
                trace.TraceVerbose("RunImport: Exiting RunImport().");
            }

            return importResult;
        }