public void Unregister(BaseSubject <T> baseSubject, IObserver <T> observer) { if (this.mappings.ContainsKey(baseSubject)) { var subject = this.mappings.Keys.FirstOrDefault(key => key == baseSubject); var observers = this.mappings[baseSubject]; if (observers.Contains(observer)) { this.mappings[baseSubject].Remove(observer); } } }
public void Register(BaseSubject <T> baseSubject, IObserver <T> observer) { if (this.mappings.ContainsKey(baseSubject)) { var subject = this.mappings.Keys.FirstOrDefault(key => key == baseSubject); var observers = this.mappings[baseSubject]; this.mappings[baseSubject].Add(observer); } else { this.mappings.Add(baseSubject, new List <IObserver <T> > { observer }); } }