private ImapSequenceSet StoreCore(ImapStoreDataItem storeDataItem)
        {
            var sequenceOrUidSet = GetSequenceOrUidSet();

              StoreCore(sequenceOrUidSet, storeDataItem);

              return sequenceOrUidSet;
        }
        private void StoreCore(ImapSequenceSet sequenceOrUidSet, ImapStoreDataItem storeDataItem)
        {
            if (sequenceOrUidSet.IsEmpty)
            return; // do nothing

              Mailbox.CheckSelected();
              Mailbox.CheckUidValidity(UidValidity, sequenceOrUidSet);

              PrepareOperation();

              Mailbox.ProcessResult(Client.Session.Store(sequenceOrUidSet, storeDataItem));
        }
        public virtual void Store(ImapStoreDataItem storeDataItem)
        {
            if (storeDataItem == null)
            throw new ArgumentNullException("storeDataItem");

              StoreCore(storeDataItem);
        }