/// <summary> /// Gets the logical negation of an event. /// </summary> /// <param name="event"> /// The event to negate. /// </param> /// <returns> /// A <see cref="RedisKey"/> where the results have been stored. /// </returns> public static async Task<RedisKey> NotAsync(Event @event) { var database = SharedCache.Instance.GetAnalyticsWriteConnection().GetDatabase(SharedCache.Instance.Db); // get the keys for the event (need to group subsets using TemporarilyOrKeys) var key = await TemporarilyOrKeysAsync(database, @event.RedisKeys()); RedisKey tmpKey = TempKey(@event); await BitwiseAnalytics.BitwiseNotAsync(database, tmpKey, key, TimeSpan.FromHours(1)); return tmpKey; }