/// <summary> /// Determines whether the asset is in the preperation queue. /// </summary> /// <param name="archiveRecordId">The archive record identifier.</param> /// <returns><c>true</c> if [is in preparation queue] [the specified archive record identifier]; otherwise, <c>false</c>.</returns> public async Task <PreparationStatus> CheckPreparationStatus(string archiveRecordId) { var auftrag = await auftragAccess.GetLaufendenAuftrag(int.Parse(archiveRecordId), AufbereitungsArtEnum.Download); if (auftrag != null) { return(new PreparationStatus { PackageIsInPreparationQueue = true, AddedToQueueOn = auftrag.CreatedOn, EstimatedPreparationDuration = auftrag.GeschaetzteAufbereitungszeit != null ? TimeSpan.FromSeconds(auftrag.GeschaetzteAufbereitungszeit.Value) : TimeSpan.Zero }); } Log.Verbose("Asset for VE {VEID} is NOT in preparationQueue.", archiveRecordId); var archiveRecord = await indexClient.GetResponse <FindArchiveRecordResponse>(new FindArchiveRecordRequest { ArchiveRecordId = archiveRecordId }); var retValue = new PreparationStatus { AddedToQueueOn = DateTime.MinValue, EstimatedPreparationDuration = preparationCalculator.EstimatePreparationDuration(archiveRecord.Message.ElasticArchiveRecord.PrimaryData, aufbereitungsZeitSettings.KonvertierungsgeschwindigkeitAudio, aufbereitungsZeitSettings.KonvertierungsgeschwindigkeitVideo) }; return(retValue); }