public async Task HandleAsync(IMessageContext context, ProcessInboundContextCollections message)
        {
            // We can receive multiple reports simultaneously.
            // Make sure that we only got one handler running.
            if (Interlocked.CompareExchange(ref _isProcessing, 1, 0) == 1)
            {
                return;
            }

            try
            {
                var collections = await GetInboundCollections();

                foreach (var collection in collections)
                {
                    var contexts = EntitySerializer.Deserialize <ErrorReportContextCollection[]>(collection.JsonData);
                    _importer.AddContextCollections(collection.ReportId, contexts);
                }

                if (collections.Any())
                {
                    await _importer.Execute();
                    await DeleteImportedRows(collections);

                    _importer.Clear();
                }
            }
            finally
            {
                Interlocked.Exchange(ref _isProcessing, 0);
            }
        }