示例#1
0
        /// <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);
            }
        }
示例#2
0
        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());
        }
示例#3
0
        /// <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);
            }
        }
示例#4
0
 /// <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);
 }