Example #1
0
        public void TestEquatableLong()
        {
            var uidl = new PopUniqueIdListing(1L, "xxx");

              Assert.IsTrue (uidl.Equals(1L));
              Assert.IsFalse(uidl.Equals(0L));
        }
Example #2
0
        public void TestEquatableString()
        {
            var uidl = new PopUniqueIdListing(1L, "xxx");

              Assert.IsTrue (uidl.Equals("xxx"));
              Assert.IsFalse(uidl.Equals("xxX"));
              Assert.IsFalse(uidl.Equals("XXX"));
              Assert.IsFalse(uidl.Equals("unique-id"));
        }
        private PopMessageInfo ToMessage(PopScanListing scanList, PopUniqueIdListing? uniqueIdList)
        {
            lock (((System.Collections.ICollection)messages).SyncRoot) {
            PopMessageInfo message;

            if (messages.TryGetValue(scanList.MessageNumber, out message)) {
              // update values
              message.ScanList = scanList;
              message.UniqueIdList = uniqueIdList ?? message.UniqueIdList;
            }
            else {
              message = new PopMessageInfo(this, scanList, uniqueIdList);

              messages[message.MessageNumber] = message;
            }

            return message;
              }
        }
        private PopCommandResult UidlCore(long? messageNumber, out PopUniqueIdListing[] uniqueIdListings)
        {
            RejectNonTransactionState();

              if (messageNumber.HasValue && messageNumber.Value <= 0L)
            throw new ArgumentOutOfRangeException("messageNumber", messageNumber.Value, "must be non-zero positive number");

              uniqueIdListings = null;

              using (var t = new UidlTransaction(connection)) {
            if (messageNumber.HasValue)
              t.RequestArguments["msg"] = messageNumber.Value.ToString();

            if (ProcessTransaction(t).Succeeded)
              uniqueIdListings = t.Result.Value;

            return t.Result;
              }
        }
        /// <summary>sends UIDL command</summary>
        /// <remarks>valid in transaction state</remarks>
        public PopCommandResult Uidl(long messageNumber, out PopUniqueIdListing uniqueIdListing)
        {
            PopUniqueIdListing[] uniqueIdListings;

              var ret = UidlCore(messageNumber, out uniqueIdListings);

              if (ret.Succeeded)
            uniqueIdListing = uniqueIdListings[0];
              else
            uniqueIdListing = PopUniqueIdListing.Invalid;

              return ret;
        }
 /// <summary>sends UIDL command</summary>
 /// <remarks>valid in transaction state</remarks>
 public PopCommandResult Uidl(out PopUniqueIdListing[] uniqueIdListings)
 {
     return UidlCore(null, out uniqueIdListings);
 }