private void FaireRetirerHandler(string nomEvenement, SouscriptionInfo subsARetirer) { if (subsARetirer != null) { _handlers[nomEvenement].Remove(subsARetirer); if (!_handlers[nomEvenement].Any()) { _handlers.Remove(nomEvenement); var typeEvenement = _typeEvenement.SingleOrDefault(e => e.Name == nomEvenement); if (typeEvenement != null) { _typeEvenement.Remove(typeEvenement); } TerminerRetirerEvenement(nomEvenement); } } }
private void FaireAjouterSouscription(Type typeHandler, string nomEvenement, bool estDynamique) { if (!ExisteSouscriptionPourEvenement(nomEvenement)) { _handlers.Add(nomEvenement, new List <SouscriptionInfo>()); } if (_handlers[nomEvenement].Any(s => s.TypeHandler == typeHandler)) { throw new ArgumentException( $"Le type de Handler {typeHandler.Name} est déjà enregistré pour '{nomEvenement}'", nameof(typeHandler)); } if (estDynamique) { _handlers[nomEvenement].Add(SouscriptionInfo.Dynamique(typeHandler)); } else { _handlers[nomEvenement].Add(SouscriptionInfo.Typed(typeHandler)); } }