/// <summary> /// Registers a preparation job in the queue. /// </summary> /// <param name="archiveRecordId">The archive record identifier.</param> public async Task <int> RegisterJobInPreparationQueue(string archiveRecordId, string packageId, AufbereitungsArtEnum aufbereitungsArt, AufbereitungsServices service, List <ElasticArchiveRecordPackage> primaryData, object workload) { var preperationTime = preparationCalculator.EstimatePreparationDuration(primaryData, aufbereitungsZeitSettings.KonvertierungsgeschwindigkeitAudio, aufbereitungsZeitSettings.KonvertierungsgeschwindigkeitVideo).TotalSeconds; var auftrag = new PrimaerdatenAuftrag { VeId = int.Parse(archiveRecordId), AufbereitungsArt = aufbereitungsArt, PackageId = packageId, Service = service, Status = AufbereitungsStatusEnum.Registriert, GroesseInBytes = primaryData.Sum(p => p.SizeInBytes), GeschaetzteAufbereitungszeit = Convert.ToInt32(preperationTime), Workload = JsonConvert.SerializeObject(workload), PackageMetadata = JsonConvert.SerializeObject(primaryData), PriorisierungsKategorie = GetPriorisierungskategorie(aufbereitungsArt, primaryData.Sum(p => p.SizeInBytes), workload) }; var auftragId = await auftragAccess.CreateOrUpdateAuftrag(auftrag); Log.Information("{METHOD} for VE {VEID} with {STATUS}. AuftragId is {auftragId}", nameof(RegisterJobInPreparationQueue), archiveRecordId, auftragId > 0 ? "SUCCEEDED" : "FAILED", auftragId); return(auftragId); }
private async Task UpdatePrimaerdatenAuftragStatus(ITransformAsset message, AufbereitungsServices service, AufbereitungsStatusEnum newStatus, string errorText = null) { if (message.PrimaerdatenAuftragId > 0) { Log.Information("Auftrag mit Id {PrimaerdatenAuftragId} wurde im {service}-Service auf Status {Status} gesetzt.", message.PrimaerdatenAuftragId, service.ToString(), newStatus.ToString()); var ep = await bus.GetSendEndpoint(new Uri(bus.Address, BusConstants.AssetManagerUpdatePrimaerdatenAuftragStatusMessageQueue)); await ep.Send <IUpdatePrimaerdatenAuftragStatus>(new UpdatePrimaerdatenAuftragStatus { PrimaerdatenAuftragId = message.PrimaerdatenAuftragId, Service = service, Status = newStatus, ErrorText = errorText }); } }
public PrimaerdatenAuftrag(int primaerdatenAuftragId, AufbereitungsArtEnum aufbereitungsArt, long?groesseInBytes, int?verarbeitungskanal, int?priorisierungsKategorie, AufbereitungsStatusEnum status, AufbereitungsServices service, string packageId, string packageMetadata, int veId, bool abgeschlossen, DateTime?abgeschlossenAm, int?geschaetzteAufbereitungszeit, string errorText, string workload, DateTime createdOn, DateTime?modifiedOn, List <PrimaerdatenAuftragLog> primaerdatenAuftragLogs) { PrimaerdatenAuftragId = primaerdatenAuftragId; AufbereitungsArt = aufbereitungsArt; GroesseInBytes = groesseInBytes; Verarbeitungskanal = verarbeitungskanal; PriorisierungsKategorie = priorisierungsKategorie; Status = status; Service = service; PackageId = packageId; PackageMetadata = packageMetadata; VeId = veId; Abgeschlossen = abgeschlossen; AbgeschlossenAm = abgeschlossenAm; GeschaetzteAufbereitungszeit = geschaetzteAufbereitungszeit; ErrorText = errorText; Workload = workload; CreatedOn = createdOn; ModifiedOn = modifiedOn; PrimaerdatenAuftragLogs = primaerdatenAuftragLogs; }
private async Task UpdatePrimaerdatenAuftragStatus(ConsumeContext <IUpdateArchiveRecord> context, AufbereitungsServices service, AufbereitungsStatusEnum newStatus, string errorText = null) { if (context.Message.PrimaerdatenAuftragId > 0) { Log.Information("Auftrag mit Id {PrimaerdatenAuftragId} wurde im {service}-Service auf Status {Status} gesetzt.", context.Message.PrimaerdatenAuftragId, service.ToString(), newStatus.ToString()); var ep = await context.GetSendEndpoint(new Uri(context.SourceAddress, BusConstants.AssetManagerUpdatePrimaerdatenAuftragStatusMessageQueue)); await ep.Send <IUpdatePrimaerdatenAuftragStatus>(new UpdatePrimaerdatenAuftragStatus { PrimaerdatenAuftragId = context.Message.PrimaerdatenAuftragId, Service = service, Status = newStatus, ErrorText = errorText }); } }