Beispiel #1
0
 public void Remove(Substance substance)
 {
     if (substance.Station != this)
     {
         if (substance.Station != null)
         {
             throw new InvalidOperationException("Substance is not registered on this station.");
         }
     }
     else
     {
         substance.Station = null;
         if (substance.UseInstantAppearance)
         {
             this.ProcessReservedRequest();
             if (this.firstElement == substance.SubstanceListElement)
             {
                 this.firstElement = substance.SubstanceListElement.Next;
                 if (this.firstElement != null)
                 {
                     this.firstElement.Previous = null;
                 }
             }
             else
             {
                 if (substance.SubstanceListElement.Previous != null)
                 {
                     substance.SubstanceListElement.Previous.Next = substance.SubstanceListElement.Next;
                 }
                 if (substance.SubstanceListElement.Next != null)
                 {
                     substance.SubstanceListElement.Next.Previous = substance.SubstanceListElement.Previous;
                 }
             }
             substance.SubstanceListElement = null;
             foreach (Sensor sensor in this.sensorList.Values)
             {
                 sensor.Transmitter.Transmit(substance.Adapter.InstantDisappearMessage);
             }
         }
     }
 }
Beispiel #2
0
 public void Add(Substance substance)
 {
     if (substance.Station != null)
     {
         throw new InvalidOperationException("Substance can be registered to one station at the same time.");
     }
     substance.Station = this;
     if (substance.UseInstantAppearance)
     {
         this.ProcessReservedRequest();
         SubstanceListElement substanceListElement = new SubstanceListElement(substance);
         substanceListElement.Next = this.firstElement;
         if (this.firstElement != null)
         {
             this.firstElement.Previous = substanceListElement;
         }
         substance.SubstanceListElement = substanceListElement;
         this.firstElement = substanceListElement;
         foreach (Sensor sensor in this.sensorList.Values)
         {
             sensor.Transmitter.Transmit(substance.Adapter.InstantAppearMessage);
         }
     }
 }
Beispiel #3
0
 public SubstanceListElement(Substance substance)
 {
     this.Substance = substance;
 }