public string DoImport(ImportDatabaseEventSource log, string blobUri, bool whatIf, int databaseSizeInGB = 5) { string requestGuid = null; //Setup Web Request for Import Operation WebRequest webRequest = WebRequest.Create(this.EndPointUri + @"/Import"); webRequest.Method = WebRequestMethods.Http.Post; webRequest.ContentType = @"application/xml"; //Create Web Request Inputs - Database Size & Edition, Blob Store Credentials and Server Connection Info ImportInput importInputs = new ImportInput { AzureEdition = "Web", DatabaseSizeInGB = databaseSizeInGB, BlobCredentials = new BlobStorageAccessKeyCredentials { StorageAccessKey = this.StorageKey, Uri = String.Format(blobUri, this.DatabaseName, DateTime.UtcNow.Ticks.ToString()) }, ConnectionInfo = new ConnectionInfo { ServerName = this.ServerName, DatabaseName = this.DatabaseName, UserName = this.UserName, Password = this.Password } }; //Perform Web Request Stream webRequestStream = webRequest.GetRequestStream(); DataContractSerializer dataContractSerializer = new DataContractSerializer(importInputs.GetType()); if (whatIf) { using (var strm = new MemoryStream()) { dataContractSerializer.WriteObject(strm, importInputs); strm.Flush(); strm.Seek(0, SeekOrigin.Begin); using (var reader = new StreamReader(strm)) { log.WouldHaveSent(reader.ReadToEnd()); } } return null; } else { using (var strm = new MemoryStream()) { dataContractSerializer.WriteObject(strm, importInputs); strm.Flush(); strm.Seek(0, SeekOrigin.Begin); using (var reader = new StreamReader(strm)) { log.SendingRequest(reader.ReadToEnd()); } } dataContractSerializer.WriteObject(webRequestStream, importInputs); webRequestStream.Close(); //Get Response and Extract Request Identifier WebResponse webResponse = null; XmlReader xmlStreamReader = null; try { //Initialize the WebResponse to the response from the WebRequest webResponse = webRequest.GetResponse(); xmlStreamReader = XmlReader.Create(webResponse.GetResponseStream()); xmlStreamReader.ReadToFollowing("guid"); requestGuid = xmlStreamReader.ReadElementContentAsString(); return requestGuid; } catch (WebException responseException) { log.RequestFailed(responseException.Message); { log.ErrorStatusCode((int)(((HttpWebResponse)responseException.Response).StatusCode)); log.ErrorStatusDescription(((HttpWebResponse)responseException.Response).StatusDescription); } return null; } } }
public bool DoImport(string blobUri) { logger.Info(String.Format("Starting Import Operation - {0}\n\r", DateTime.Now)); string requestGuid = null; bool importComplete = false; //Setup Web Request for Import Operation WebRequest webRequest = WebRequest.Create(this.EndPointUri + @"/Import"); webRequest.Method = WebRequestMethods.Http.Post; webRequest.ContentType = @"application/xml"; //Create Web Request Inputs - Database Size & Edition, Blob Store Credentials and Server Connection Info ImportInput importInputs = new ImportInput { AzureEdition = "Web", DatabaseSizeInGB = 1, BlobCredentials = new BlobStorageAccessKeyCredentials { StorageAccessKey = this.StorageKey, Uri = String.Format(blobUri, this.DatabaseName, DateTime.UtcNow.Ticks.ToString()) }, ConnectionInfo = new ConnectionInfo { ServerName = this.ServerName, DatabaseName = this.DatabaseName, UserName = this.UserName, Password = this.Password } }; //Perform Web Request logger.Info("Making Web Request for Import Operation..."); Stream webRequestStream = webRequest.GetRequestStream(); DataContractSerializer dataContractSerializer = new DataContractSerializer(importInputs.GetType()); dataContractSerializer.WriteObject(webRequestStream, importInputs); webRequestStream.Close(); //Get Response and Extract Request Identifier logger.Info("Serializing response and extracting guid..."); WebResponse webResponse = null; XmlReader xmlStreamReader = null; try { //Initialize the WebResponse to the response from the WebRequest webResponse = webRequest.GetResponse(); xmlStreamReader = XmlReader.Create(webResponse.GetResponseStream()); xmlStreamReader.ReadToFollowing("guid"); requestGuid = xmlStreamReader.ReadElementContentAsString(); logger.Info(String.Format("Request Guid: {0}", requestGuid)); //Get Status of Import Operation while (!importComplete) { logger.Info("Checking status of Import..."); List <StatusInfo> statusInfoList = CheckRequestStatus(requestGuid); StatusInfo statusInfo = statusInfoList.FirstOrDefault(); logger.Info(statusInfo.Status); if (statusInfo.Status == "Failed") { logger.Info(String.Format("Database import failed: {0}", statusInfo.ErrorMessage)); importComplete = true; } if (statusInfo.Status == "Completed") { logger.Info(String.Format("Import Complete - Database imported to: {0}\n\r", statusInfo.DatabaseName)); importComplete = true; } } return(importComplete); } catch (WebException responseException) { logger.ErrorFormat("Request Falied: {0}", responseException, responseException.Message); { logger.ErrorFormat("Status Code: {0}", ((HttpWebResponse)responseException.Response).StatusCode); logger.ErrorFormat("Status Description: {0}\n\r", ((HttpWebResponse)responseException.Response).StatusDescription); } return(importComplete); } }
public bool DoImport(string blobUri) { logger.Info(String.Format("Starting Import Operation - {0}\n\r", DateTime.Now)); string requestGuid = null; bool importComplete = false; //Setup Web Request for Import Operation WebRequest webRequest = WebRequest.Create(this.EndPointUri + @"/Import"); webRequest.Method = WebRequestMethods.Http.Post; webRequest.ContentType = @"application/xml"; //Create Web Request Inputs - Database Size & Edition, Blob Store Credentials and Server Connection Info ImportInput importInputs = new ImportInput { AzureEdition = "Web", DatabaseSizeInGB = 1, BlobCredentials = new BlobStorageAccessKeyCredentials { StorageAccessKey = this.StorageKey, Uri = String.Format(blobUri, this.DatabaseName, DateTime.UtcNow.Ticks.ToString()) }, ConnectionInfo = new ConnectionInfo { ServerName = this.ServerName, DatabaseName = this.DatabaseName, UserName = this.UserName, Password = this.Password } }; //Perform Web Request logger.Info("Making Web Request for Import Operation..."); Stream webRequestStream = webRequest.GetRequestStream(); DataContractSerializer dataContractSerializer = new DataContractSerializer(importInputs.GetType()); dataContractSerializer.WriteObject(webRequestStream, importInputs); webRequestStream.Close(); //Get Response and Extract Request Identifier logger.Info("Serializing response and extracting guid..."); WebResponse webResponse = null; XmlReader xmlStreamReader = null; try { //Initialize the WebResponse to the response from the WebRequest webResponse = webRequest.GetResponse(); xmlStreamReader = XmlReader.Create(webResponse.GetResponseStream()); xmlStreamReader.ReadToFollowing("guid"); requestGuid = xmlStreamReader.ReadElementContentAsString(); logger.Info(String.Format("Request Guid: {0}", requestGuid)); //Get Status of Import Operation while (!importComplete) { logger.Info("Checking status of Import..."); List<StatusInfo> statusInfoList = CheckRequestStatus(requestGuid); StatusInfo statusInfo = statusInfoList.FirstOrDefault(); logger.Info(statusInfo.Status); if (statusInfo.Status == "Failed") { logger.Info(String.Format("Database import failed: {0}", statusInfo.ErrorMessage)); importComplete = true; } if (statusInfo.Status == "Completed") { logger.Info(String.Format("Import Complete - Database imported to: {0}\n\r", statusInfo.DatabaseName)); importComplete = true; } } return importComplete; } catch (WebException responseException) { logger.ErrorFormat("Request Falied: {0}",responseException, responseException.Message); { logger.ErrorFormat("Status Code: {0}", ((HttpWebResponse)responseException.Response).StatusCode); logger.ErrorFormat("Status Description: {0}\n\r", ((HttpWebResponse)responseException.Response).StatusDescription); } return importComplete; } }
public string DoImport(ImportDatabaseEventSource log, string blobUri, bool whatIf, int databaseSizeInGB = 5) { string requestGuid = null; //Setup Web Request for Import Operation WebRequest webRequest = WebRequest.Create(this.EndPointUri + @"/Import"); webRequest.Method = WebRequestMethods.Http.Post; webRequest.ContentType = @"application/xml"; //Create Web Request Inputs - Database Size & Edition, Blob Store Credentials and Server Connection Info ImportInput importInputs = new ImportInput { AzureEdition = "Web", DatabaseSizeInGB = databaseSizeInGB, BlobCredentials = new BlobStorageAccessKeyCredentials { StorageAccessKey = this.StorageKey, Uri = String.Format(blobUri, this.DatabaseName, DateTime.UtcNow.Ticks.ToString()) }, ConnectionInfo = new ConnectionInfo { ServerName = this.ServerName, DatabaseName = this.DatabaseName, UserName = this.UserName, Password = this.Password } }; //Perform Web Request Stream webRequestStream = webRequest.GetRequestStream(); DataContractSerializer dataContractSerializer = new DataContractSerializer(importInputs.GetType()); if (whatIf) { using (var strm = new MemoryStream()) { dataContractSerializer.WriteObject(strm, importInputs); strm.Flush(); strm.Seek(0, SeekOrigin.Begin); using (var reader = new StreamReader(strm)) { log.WouldHaveSent(reader.ReadToEnd()); } } return(null); } else { using (var strm = new MemoryStream()) { dataContractSerializer.WriteObject(strm, importInputs); strm.Flush(); strm.Seek(0, SeekOrigin.Begin); using (var reader = new StreamReader(strm)) { log.SendingRequest(reader.ReadToEnd()); } } dataContractSerializer.WriteObject(webRequestStream, importInputs); webRequestStream.Close(); //Get Response and Extract Request Identifier WebResponse webResponse = null; XmlReader xmlStreamReader = null; try { //Initialize the WebResponse to the response from the WebRequest webResponse = webRequest.GetResponse(); xmlStreamReader = XmlReader.Create(webResponse.GetResponseStream()); xmlStreamReader.ReadToFollowing("guid"); requestGuid = xmlStreamReader.ReadElementContentAsString(); return(requestGuid); } catch (WebException responseException) { log.RequestFailed(responseException.Message); { log.ErrorStatusCode((int)(((HttpWebResponse)responseException.Response).StatusCode)); log.ErrorStatusDescription(((HttpWebResponse)responseException.Response).StatusDescription); } return(null); } } }