/// <summary>
        ///     Consumes the specified message from the bus.
        /// </summary>
        /// <param name="context">The context from the bus.</param>
        /// <returns>Task.</returns>
        public async Task Consume(ConsumeContext <IArchiveRecordUpdated> context)
        {
            using (LogContext.PushProperty(nameof(context.ConversationId), context.ConversationId))
            {
                Log.Information("Received {CommandName} event with conversationId {ConversationId} from the bus", nameof(IArchiveRecordUpdated),
                                context.ConversationId);

                // Nur wenn die VE erfolgreich aktualisiert worden ist, prüfen wir, ob es zur VE Einträge in der WaitList hat.
                // In der Regel sollte nur ein Wert zurück geliefert werden.-
                // Wenn ja, dann rufen wir erneut die DigitalisierungsAuftragErledigtEvent auf. Dieser löst dann den Download aus.
                if (context.Message.ActionSuccessful)
                {
                    var items = await orderDataAccess.GetVeFromOrderExecutedWaitList(context.Message.ArchiveRecordId);

                    foreach (var item in items)
                    {
                        var message = JsonConvert.DeserializeObject <DigitalisierungsAuftragErledigt>(item.SerializedMessage);
                        var ep      = await context.GetSendEndpoint(new Uri(bus.Address, BusConstants.DigitalisierungsAuftragErledigtEvent));

                        await ep.Send <IDigitalisierungsAuftragErledigt>(new
                        {
                            message.ArchiveRecordId,
                            message.OrderItemId,
                            message.OrderDate,
                            message.OrderUserId,
                            message.OrderUserRolePublicClient
                        });

                        Log.Information("Sent {IDigitalisierungsAuftragErledigt} message on bus from ArchiveRecordUpdatedConsumer",
                                        nameof(IDigitalisierungsAuftragErledigt));

                        await orderDataAccess.MarkOrderAsProcessedInWaitList(item.OrderExecutedWaitListId);
                    }
                }
            }
        }