예제 #1
0
        internal BlackListEntryHolder(BlackListEntry ble)
        {
            _hashCode = ble.GetHashCode();
            byte[] addr = IPAddress.Parse(ble.IPAddr).GetAddressBytes();
            string mask = ble.IPMask;

            if (mask == "")
            {
                mask = "255.255.255.255";
            }
            byte[] maskaddr = IPAddress.Parse(mask).GetAddressBytes();
            if (addr.Length != 4 || addr.Length != maskaddr.Length)
            {
                throw new ArgumentException("Address/mask is not IP v4");
            }
            _MaskIndex = GetMaskIndex(maskaddr);
            for (int i = 0; i < addr.Length; i++)
            {
                addr[i] &= maskaddr[i];
            }
            _Index     = String.Format("{0}.{1}.{2}.{3}", addr[0], addr[1], addr[2], addr[3]);
            _Expires   = ble.ExpiresAt;
            _BlockType = ble.BlockType;
            ble_       = ble;
        }
 public void Add(BlackListEntry entry)
 {
     using (var context = _contextFactory.Invoke())
     {
         context.Save(entry);
     }
 }
        public void when_finding_a_blacklisted_phone()
        {
            Sut.DeleteAll();

            var entry = new BlackListEntry {
                Id = Guid.NewGuid(), PhoneNumber = "5145145145"
            };

            Sut.Add(entry);

            var result = Sut.FindByPhoneNumber(entry.PhoneNumber);

            Assert.NotNull(result);
            Assert.AreEqual("5145145145", result.PhoneNumber);
            Assert.AreEqual(entry.Id, result.Id);
        }
        public void when_adding_an_entry_to_blacklist()
        {
            Sut.DeleteAll();

            var entry = new BlackListEntry {
                Id = Guid.NewGuid(), PhoneNumber = "5145145145"
            };

            Sut.Add(entry);

            using (var context = new BookingDbContext(DbName))
            {
                var dto = context.Query <BlackListEntry>().FirstOrDefault(c => c.Id.Equals(entry.Id));

                Assert.NotNull(dto);
                Assert.AreEqual("5145145145", dto.PhoneNumber);
            }
        }
예제 #5
0
 public void ps_Deleted(object sender, NotificationEventArgs e)
 {
     if (e.EntityName == "BLACKLIST")
     {
         BlackListEntry entry = e.ConfObject as BlackListEntry;
         if (entry != null)
         {
             lock (this)
             {
             }
             //Console.WriteLine("Removed: {0}[{1}]. expires at {2}", entry.IPAddr, entry.IPMask, entry.ExpiresAt.ToLocalTime());
             BlackListEntryHolder val;
             if (the_set.TryGetValue(entry, out val))
             {
                 blc_.Remove(val);
                 the_set.Remove(entry);
             }
         }
     }
 }