/// <summary> /// reset queues with airingIds /// </summary> /// <param name="queueNames">The queue names.</param> /// <param name="airingIds">The airing ids.</param> /// <param name="changeNotificationType">file/title</param> public void ResetFor(IList <string> queueNames, IList <string> airingIds, ChangeNotificationType changeNotificationType) { if (!queueNames.Any() || !airingIds.Any()) { return; } foreach (var queueName in queueNames) { ResetQueue(queueName, airingIds, changeNotificationType); } }
private void ResetQueue(string queueName, IList <string> airingIds, ChangeNotificationType changeNotificationType) { IMongoQuery query = Query.Or(Query.In("DeliveredTo", new BsonArray(new List <string> { queueName })), Query.In("ChangeNotifications.QueueName", new BsonArray(new List <string> { queueName })), Query.In("IgnoredQueues", new BsonArray(new List <string> { queueName }))); query = Query.And(query, Query.In("AssetId", new BsonArray(airingIds))); ResetQueueInMongo(queueName, query, changeNotificationType.ToString()); }
/// <summary> /// reset queues with titleIds /// </summary> /// <param name="queueNames">The queue names.</param> /// <param name="titleIds">The title ids.</param> /// <param name="changeNotificationType">file/title</param> public void ResetFor(IList <string> queueNames, IList <int> titleIds, ChangeNotificationType changeNotificationType) { if (!queueNames.Any() || !titleIds.Any()) { return; } var airingIds = _modifiedAiringQuery .GetNonExpiredBy(titleIds, queueNames.AsQueryable(), DateTime.Now.ToUniversalTime()) .Select(a => a.AssetId).ToList(); foreach (var queueName in queueNames) { ResetQueue(queueName, airingIds, changeNotificationType); } }
/// <summary> /// Flags the given list of queues for redelivery. Assets selected for delivery /// depends on 'airingIds' /// </summary> /// <param name="queueNames">The queue names.</param> /// <param name="airingIds">The airing ids.</param> /// <param name="changeNotificationType">the file/title</param> public void FlagForRedelivery(IList <string> queueNames, IList <string> airingIds, ChangeNotificationType changeNotificationType) { queueCommandHelper.ResetFor(queueNames, airingIds, changeNotificationType); }