public void Add(ISequenceableItem item, object userState)
 {
     if (item == null)
     {
         throw new ArgumentNullException("item");
     }
     if (this.State != ProcessorState.Initializing)
     {
         throw new InvalidOperationException("You can add items to processor only in Initializing state");
     }
     WcxArchiveItem item2 = item as WcxArchiveItem;
     if ((item2 == null) || (item.SequenceContext != this.Context))
     {
         throw new ArgumentException("item is not WcxArchiveItem or invalid sequence context.");
     }
     if (this.Items == null)
     {
         this.Items = new Dictionary<int, WcxArchiveItem>();
     }
     this.Items.Add(item2.Index, item2);
     if (userState != null)
     {
         if (this.ItemUserStates == null)
         {
             this.ItemUserStates = new Dictionary<ISequenceableItem, object>();
         }
         this.ItemUserStates.Add(item, userState);
     }
 }
 public object GetUserState(ISequenceableItem item)
 {
     object obj2;
     if ((this.ItemUserStates != null) && this.ItemUserStates.TryGetValue(item, out obj2))
     {
         return obj2;
     }
     return null;
 }
 public SimpleProcessItemEventArgs(ISequenceableItem item, object userState)
 {
     this.FItem = item;
     this.FUserState = userState;
 }