private List <PrimaerdatenReportRecord> ConvertToPrimaerdatenRecord(List <PrimaerdatenAufbereitungItem> rawResult, List <SyncInfoForReport> syncInfoForReport) { List <PrimaerdatenReportRecord> result = new List <PrimaerdatenReportRecord>(); foreach (var item in rawResult) { var record = new PrimaerdatenReportRecord(); if (syncInfoForReport != null && item.MutationsId.HasValue) { var infoForReport = syncInfoForReport.FirstOrDefault(mut => mut.MutationId == item.MutationsId.Value); if (infoForReport != null) { record.PrimaryDataLinkCreationDate = infoForReport.ErstellungsdatumPrimaerdatenVerbindung; record.StartFirstSynchronizationAttempt = infoForReport.StartErsterSynchronisierungsversuch; record.CompletionLastSynchronizationAttempt = infoForReport.AbschlussSynchronisierung; record.StartLastSynchronizationAttempt = infoForReport.StartLetzterSynchronisierungsversuch; record.CountSynchronizationAttempts = infoForReport.AnzahlNotwendigerSynchronisierungsversuche; } } SetMetaData(item, record); SetPrimaerdaten(record, item); SetCalculatedValues(record, item); result.Add(record); } return(result); }
private static void SetMetaData(PrimaerdatenAufbereitungItem item, PrimaerdatenReportRecord record) { var list = JsonConvert.DeserializeObject <List <ElasticArchiveRecordPackage> >(item.PackageMetadata); var metaData = list.FirstOrDefault(); if (metaData != null) { var items = metaData.Items.Where(i => i.Type.Equals(ElasticRepositoryObjectType.File)).ToList().Select(i => Path.GetExtension(i.Name)).Distinct().ToArray(); // ReSharper disable once PossibleLossOfFraction record.Size = metaData.SizeInBytes / (1024 * 1024); record.FileCount = metaData.FileCount; record.FileFormats = string.Join(",", items); var timeSpan = metaData.FulltextExtractionDuration + metaData.RepositoryExtractionDuration; record.EstimatedPreparationTimeVeAccordingDetailPage = FormatTimeSpan(timeSpan); } }
private static void SetPrimaerdaten(PrimaerdatenReportRecord record, PrimaerdatenAufbereitungItem item) { // Primaerdaten record.AufbereitungsArt = item.AufbereitungsArt == "Sync" ? "Synchronisation" : "Aufbereitung"; record.OrderId = item.OrderItemId; record.VeId = item.VeId; record.MutationsId = item.MutationsId; record.PrimaerdatenAuftragId = item.PrimaerdatenAuftragId; record.Source = item.Quelle; record.NeuEingegangen = item.NeuEingegangen; record.FreigabePrüfen = item.FreigabePruefen; record.FürDigitalisierungBereit = item.FuerDigitalisierungBereit; record.FürAushebungBereit = item.FuerAushebungBereit; record.Ausgeliehen = item.Ausgeliegen; record.ZumReponierenBereit = item.ZumReponierenBereit; record.ClickButtonPrepareDigitalCopy = item.Registriert; record.StartFirstPreparationAttempt = item.ErsterAufbereitungsversuch; record.StartLastPreparationAttempt = item.LetzterAufbereitungsversuch; record.CompletionLastPreparationAttempt = item.AuftragErledigt; record.ShippingMailReadForDownload = item.AuftragErledigt; record.CountPreparationAttempts = item.AnzahlVersucheDownload; record.StorageUseCopyCache = item.ImCacheAbgelegt; }
private void SetCalculatedValues(PrimaerdatenReportRecord @record, PrimaerdatenAufbereitungItem item) { var timeSpan = item.FreigabePruefen.HasValue & item.FuerDigitalisierungBereit.HasValue ? item.FuerDigitalisierungBereit.Value.Subtract(item.FreigabePruefen.Value) : (TimeSpan?)null; record.DauerManuelleFreigabe = FormatTimeSpan(timeSpan); timeSpan = item.FuerAushebungBereit.HasValue & item.FuerDigitalisierungBereit.HasValue ? item.FuerAushebungBereit.Value.Subtract(item.FuerDigitalisierungBereit.Value) : (TimeSpan?)null; record.DauerAuftragsabrufVecteur = FormatTimeSpan(timeSpan); timeSpan = item.FuerAushebungBereit.HasValue & item.Ausgeliegen.HasValue ? item.Ausgeliegen.Value.Subtract(item.FuerAushebungBereit.Value) : (TimeSpan?)null; record.DauerAusleiheLogistik = FormatTimeSpan(timeSpan); timeSpan = item.ZumReponierenBereit.HasValue & item.Ausgeliegen.HasValue ? item.ZumReponierenBereit.Value.Subtract(item.Ausgeliegen.Value) : (TimeSpan?)null; record.DauerDigitalisierungVecteur = FormatTimeSpan(timeSpan); timeSpan = item.ZumReponierenBereit.HasValue & record.PrimaryDataLinkCreationDate.HasValue ? record.PrimaryDataLinkCreationDate.Value.Subtract(item.ZumReponierenBereit.Value) : (TimeSpan?)null; record.DauerUpdateAIPAdresseAIS = FormatTimeSpan(timeSpan); timeSpan = record.StartFirstSynchronizationAttempt.HasValue & record.PrimaryDataLinkCreationDate.HasValue ? record.StartFirstSynchronizationAttempt.Value.Subtract(record.PrimaryDataLinkCreationDate.Value) : (TimeSpan?)null; record.DauerStartSynchronisierungWebOZ = FormatTimeSpan(timeSpan); timeSpan = record.CompletionLastSynchronizationAttempt.HasValue & record.StartLastSynchronizationAttempt.HasValue ? record.CompletionLastSynchronizationAttempt.Value.Subtract(record.StartLastSynchronizationAttempt.Value) : (TimeSpan?)null; record.DauerErfolgreicherSyncVersuch = FormatTimeSpan(timeSpan); timeSpan = record.CompletionLastSynchronizationAttempt.HasValue & record.StartFirstSynchronizationAttempt.HasValue ? record.CompletionLastSynchronizationAttempt.Value.Subtract(record.StartFirstSynchronizationAttempt.Value) : (TimeSpan?)null; record.DauerAlleSyncVersuche = FormatTimeSpan(timeSpan); timeSpan = record.CompletionLastSynchronizationAttempt.HasValue & item.ZumReponierenBereit.HasValue ? record.CompletionLastSynchronizationAttempt.Value.Subtract(item.ZumReponierenBereit.Value) : (TimeSpan?)null; record.DauerZumReponierenBereitSyncCompleted = FormatTimeSpan(timeSpan); timeSpan = record.CompletionLastPreparationAttempt.HasValue & record.StartLastPreparationAttempt.HasValue ? record.CompletionLastPreparationAttempt.Value.Subtract(record.StartLastPreparationAttempt.Value) : (TimeSpan?)null; record.DauerErfolgreicherAufbereitungsversuch = FormatTimeSpan(timeSpan); timeSpan = record.CompletionLastPreparationAttempt.HasValue & record.StartFirstPreparationAttempt.HasValue ? record.CompletionLastPreparationAttempt.Value.Subtract(record.StartFirstPreparationAttempt.Value) : (TimeSpan?)null; record.DauerAllAufbereitungsversuch = FormatTimeSpan(timeSpan); timeSpan = record.CompletionLastPreparationAttempt.HasValue & record.CompletionLastSynchronizationAttempt.HasValue ? record.CompletionLastPreparationAttempt.Value.Subtract(record.CompletionLastSynchronizationAttempt.Value) : (TimeSpan?)null; record.DauerSyncCompletedAufbereitungErfolgreich = FormatTimeSpan(timeSpan); timeSpan = record.StorageUseCopyCache.HasValue && record.CompletionLastPreparationAttempt.HasValue ? record.StorageUseCopyCache.Value.Subtract(record.CompletionLastPreparationAttempt.Value) : (TimeSpan?)null; record.DauerAufbereitungErfolgreichSpeicherungGebrauchskopieCache = FormatTimeSpan(timeSpan); timeSpan = record.ShippingMailReadForDownload.HasValue && record.CompletionLastPreparationAttempt.HasValue ? record.ShippingMailReadForDownload.Value.Subtract(record.CompletionLastPreparationAttempt.Value) : (TimeSpan?)null; record.DauerAufbereitungErfolgreichMailVersandt = FormatTimeSpan(timeSpan); timeSpan = record.ShippingMailReadForDownload.HasValue && item.NeuEingegangen.HasValue ? record.ShippingMailReadForDownload.Value.Subtract(item.NeuEingegangen.Value) : (TimeSpan?)null; record.EingangBestellungVersandEMailZumDownloadBereit = FormatTimeSpan(timeSpan); timeSpan = record.ShippingMailReadForDownload.HasValue && record.ClickButtonPrepareDigitalCopy.HasValue ? record.ShippingMailReadForDownload.Value.Subtract(record.ClickButtonPrepareDigitalCopy.Value) : (TimeSpan?)null; record.KlickButtonDigitalisatAufbereitenVersandEMailZumDownloadBereit = FormatTimeSpan(timeSpan); }