private async Task <bool> VerifyQueueMessagesExistInTargetQueue(int expected) { IEnumerable <object> messages; var lastCountSeen = -1; int count = 0; DateTime lastTimeCountChanged = new DateTime(); var timeout = TimeSpan.FromSeconds(45); var startTime = DateTime.UtcNow; do { var taskMesagesResponse = await CloudPlatformController.DequeueMessagesAsync(new CloudPlatformRequest() { Source = TargetQueue }); messages = (IEnumerable <object>)taskMesagesResponse.Data; count += messages == null ? 0 : messages.Count(); Console.WriteLine("Destination Messages - Number Of Messages: {0}", count); Thread.Sleep(1 * 1000); if (count != lastCountSeen) { lastCountSeen = count; lastTimeCountChanged = DateTime.UtcNow; } if ((startTime - lastTimeCountChanged) > timeout) { Console.WriteLine("Waiting for destination queue to reach expected count timed out: {0}/{1}", count, ExpectedExecutionCount); break; } } while (count < expected); return(true); }
protected override List <CloudPlatformResponse> CleanUpStorageResources() { List <CloudPlatformResponse> cloudPlatformResponses = null; try { cloudPlatformResponses = new List <CloudPlatformResponse> { { CloudPlatformController.DeleteMessages(new CloudPlatformRequest() { Source = SourceQueue }) }, { CloudPlatformController.DeleteMessages(new CloudPlatformRequest() { Source = TargetQueue }) } }; } catch (Exception e) { var webException = e.InnerException as WebException; if (webException != null) { if (webException.Status == WebExceptionStatus.ProtocolError && webException.Message.Contains("400")) { throw new Exception(String.Format("Error: 404 when deleting message from queue. Check that queues exist: {0} {1}", SourceQueue, TargetQueue)); } } throw; } return(cloudPlatformResponses); }
private async Task UploadMessagesAsync(IEnumerable <string> messages) { await CloudPlatformController.EnqueueMessagesAsync(new CloudPlatformRequest() { Key = Guid.NewGuid().ToString(), Source = SourceQueue, Data = new Dictionary <string, object>() { { Constants.Message, messages } } }); }
private bool VerifyBlobItemsExistInTargetDestination(int expected) { IEnumerable <object> blobs; do { blobs = (IEnumerable <object>)CloudPlatformController.ListBlobs(new CloudPlatformRequest() { Source = DstBlobContainer }).Data; Console.WriteLine("Destination Blobs - Number Of Blobs: {0}", blobs.Count()); Thread.Sleep(1 * 1000); } while (blobs.Count() < expected); return(true); }
private async Task UploadBlobs(IEnumerable <string> blobs) { Parallel.ForEach(blobs, async blobPath => { using (FileStream stream = new FileStream(blobPath, FileMode.Open, FileAccess.Read, FileShare.Read)) { await CloudPlatformController.PostBlobAsync(new CloudPlatformRequest() { Key = Guid.NewGuid().ToString(), Source = SrcBlobContainer, DataStream = stream }); } }); }
protected async override Task UploadItems(IEnumerable <string> items) { //instead of sending messages to queue send to SNS topic await CloudPlatformController.PostMessagesAsync(new CloudPlatformRequest() { Data = new Dictionary <string, object>() { { Constants.Message, items }, { Constants.Topic, _sourceTopic } }, Retry = true, RetryAttempts = 3, TimeoutMilliseconds = (int?)TimeSpan.FromSeconds(45).TotalMilliseconds }); }
protected override List <CloudPlatformResponse> CleanUpStorageResources() { var cloudPlatformResponses = new List <CloudPlatformResponse> { { CloudPlatformController.DeleteBlobs(new CloudPlatformRequest() { Source = SrcBlobContainer }) }, { CloudPlatformController.DeleteBlobs(new CloudPlatformRequest() { Source = DstBlobContainer }) } }; return(cloudPlatformResponses); }
protected override List <CloudPlatformResponse> CleanUpStorageResources() { var responses = new List <CloudPlatformResponse>(); List <CloudPlatformResponse> cloudPlatformResponses = null; try { cloudPlatformResponses = new List <CloudPlatformResponse> { { CloudPlatformController.DeleteMessages(new CloudPlatformRequest() { Source = TargetQueue }) } }; responses.AddRange(cloudPlatformResponses); } catch (Exception e) { Console.WriteLine(e); throw; } return(responses); }