Example #1
0
        public static void Block(string number, int days)
        {
            IDataStore store = DataStore.GetInstance();

            BlockedNumber bn = new BlockedNumber
            {
                Phone   = number,
                Blocked = DateTime.UtcNow,
                Expires = DateTime.UtcNow.AddDays(days),
            };

            store.Save(bn);

            // now update any subscriptions...
            IList <Subscription> subs = store.Subscriptions.Where(s => s.Phone == number).ToList();

            foreach (Subscription sub in subs)
            {
                if (sub.Next < bn.Expires)
                {
                    sub.Next = bn.Expires;
                    store.Save(sub);
                }
            }
        }
Example #2
0
        public void Save(BlockedNumber number)
        {
            lock (_lock)
            {
                if (number.Id == 0)
                {
                    number.Id = NextId();
                }

                _blockedNumbers[number.Id] = number;
            }
        }