public void SubscriberRemoved(SubscriberModel model)
 {
     var stringModel = JsonConvert.SerializeObject(model);
     // set expiration to 1 second, anything lower than that seems to throw an exception
     var expiration = new TimeSpan(10000000);
     _database.StringSet(GetRedisKeyForAppId(model.ApplicationId), stringModel, expiration);
     _database.StringSet(GetRedisKeyForKey(model.Key), stringModel, expiration);
     // expire the get all subscribers call
     _database.StringSet(HASH_EXPIRATION, DateTime.UtcNow.Ticks);
 }
        public void AddOrUpdateSubscriber(SubscriberModel model)
        {
            var config = GetConfiguration();
            var expirationTicks = config?.Company?.CacheTimeoutTicks;
            var expiration = expirationTicks != null ? new TimeSpan?(new TimeSpan(expirationTicks.Value)) : null;
            var stringModel = JsonConvert.SerializeObject(model);

            _database.StringSet(GetRedisKeyForAppId(model.ApplicationId), stringModel, expiration);
            _database.StringSet(GetRedisKeyForKey(model.Key), stringModel, expiration);
            _database.HashSet(SUBSCRIO_ALL_KEY, GetRedisKeyForKey(model.Key), stringModel);
        }
 public void ShouldStoreAndRetrieveSubscriber()
 {
     var model = new SubscriberModel
     {
         ApplicationId = "AppTuttle",
         Key = "KeyTuttle",
     };
     _redis.AddOrUpdateSubscriber(model);
     var result = _redis.GetByApplicationId("AppTuttle");
     Assert.IsNotNull(result);
     result = _redis.GetByKey("KeyTuttle");
     Assert.IsNotNull(result);
 }
 public void ShouldHaveExpiredAndReturnNull()
 {
     var model = new SubscriberModel
     {
         ApplicationId = "AppTuttle",
         Key = "KeyTuttle",
     };
     _redis.AddOrUpdateSubscriber(model);
     System.Threading.Thread.Sleep(6000);
     var result = _redis.GetByApplicationId("AppTuttle");
     Assert.IsNull(result);
     result = _redis.GetByKey("KeyTuttle");
     Assert.IsNull(result);
 }
 public void SubscriberRemoved(SubscriberModel model)
 {
 }
 public void AddOrUpdateSubscriber(SubscriberModel model)
 {
 }
 public virtual string UpdateSubscription(SubscriberModel model)
 {
     using (var wc = new WebClient { Encoding = Encoding.UTF8 })
     {
         wc.Headers[HttpRequestHeader.ContentType] = "application/json";
         wc.Headers[HttpRequestHeader.Authorization] = AuthToken;
         try
         {
             return wc.UploadString(Endpoint + UPDATE_SUBSCRIPTION, "PUT", JsonConvert.SerializeObject(model));
         }
         catch (WebException ex)
         {
             return wc.UploadString(Endpoint + UPDATE_SUBSCRIPTION, "PUT", JsonConvert.SerializeObject(model));
         }
     }
 }