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
             });
         }
     });
 }
Exemple #6
0
 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);
        }
Exemple #8
0
        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);
        }