public override void ExecuteCommand()

in Source/NuGetGallery.Operations/Tasks/ExportDatabaseTask.cs [54:100]


        public override void ExecuteCommand()
        {
            if (!String.IsNullOrEmpty(DatabaseName))
            {
                ConnectionString.InitialCatalog = DatabaseName;
            }
            Log.Info("Exporting {0} on {1} to {2}", ConnectionString.InitialCatalog, Util.GetDatabaseServerName(ConnectionString), DestinationStorage.Credentials.AccountName);

            string serverName = ConnectionString.DataSource;
            if (serverName.StartsWith("tcp:"))
            {
                serverName = serverName.Substring(4);
            }

            WASDImportExport.ImportExportHelper helper = new WASDImportExport.ImportExportHelper(Log)
            {
                EndPointUri = SqlDacEndpoint.AbsoluteUri,
                DatabaseName = ConnectionString.InitialCatalog,
                ServerName = serverName,
                UserName = ConnectionString.UserID,
                Password = ConnectionString.Password,
                StorageKey = Convert.ToBase64String(DestinationStorage.Credentials.ExportKey())
            };

            // Prep the blob
            string blobUrl = null;
            if (!WhatIf)
            {
                var client = DestinationStorage.CreateCloudBlobClient();
                var container = client.GetContainerReference(DestinationContainer);
                container.CreateIfNotExists();
                var blob = container.GetBlockBlobReference(ConnectionString.InitialCatalog + ".bacpac");
                if (blob.Exists())
                {
                    Log.Info("Skipping export of {0} because the blob already exists", blob.Name);
                }
                else
                {
                    Log.Info("Starting export to {0}", blob.Uri.AbsoluteUri);

                    // Export!
                    blobUrl = helper.DoExport(blob.Uri.AbsoluteUri, WhatIf);
                }
            }

            Log.Info("Export Complete");
        }