public void PushBy(DeliverCriteria criteria) { var converter = new JsonToQueryConverter(); IMongoQuery filter; switch (criteria.WindowOption) { case (int)WindowOption.StartDate: filter = Query.And(converter.Convert(criteria.Query), Query.GTE("Flights.Start", criteria.StartDateTime), Query.LTE("Flights.Start", criteria.EndDateTime)); break; case (int)WindowOption.InFlightDuring: filter = Query.And(converter.Convert(criteria.Query), Query.LTE("Flights.Start", criteria.EndDateTime), Query.GTE("Flights.End", criteria.StartDateTime)); break; default: throw new Exception(string.Format("Invalid enumeration for WindowOption: {0}", criteria.WindowOption)); } Push(criteria.Name, filter); }
public void PushBy(string queueName, string query, IList <string> airingIds) { var converter = new JsonToQueryConverter(); var filter = Query.And( converter.Convert(query), Query.In("AssetId", new BsonArray(airingIds))); Push(queueName, filter); }
public void PushBy(string queueName, string query, int hoursOut, IList <string> airingIds) { var converter = new JsonToQueryConverter(); var targetDate = DateTime.UtcNow.AddHours(hoursOut); var filter = Query.And( converter.Convert(query), Query.ElemMatch("Flights", Query.Or( Query.GT("Start", targetDate), Query.LT("End", DateTime.UtcNow))), Query.In("AssetId", new BsonArray(airingIds))); Push(queueName, filter); }
protected static QueryDocument Create(string jsonQuery) { var converter = new JsonToQueryConverter(); return(converter.Convert(jsonQuery)); }