コード例 #1
0
        /// <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);
        }