| 
					
				 | 
			
			
				@@ -39,22 +39,25 @@ namespace InABox.Core 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         private List<IPollHandler> Handlers = new List<IPollHandler>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        protected abstract void NotifyAll<TNotification>(TNotification notification); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        protected abstract void NotifySession<TNotification>(Guid session, TNotification notification); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        protected abstract void NotifyAll<TNotification>(TNotification notification) where TNotification : BaseObject; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        protected abstract void NotifySession<TNotification>(Guid session, TNotification notification) where TNotification : BaseObject; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         protected abstract void NotifySession(Guid session, Type TNotification, object? notification); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         protected abstract IEnumerable<Guid> GetUserSessions(Guid user); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         protected abstract IEnumerable<Guid> GetSessions(Platform platform); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         public void Push<TNotification>(TNotification notification) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            where TNotification : BaseObject 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             NotifyAll(notification); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         public void Push<TNotification>(Guid session, TNotification notification) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            where TNotification : BaseObject 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             NotifySession(session, notification); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         public void PushUser<TNotification>(Guid user, TNotification notification) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            where TNotification : BaseObject 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             foreach (var session in GetUserSessions(user)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -62,6 +65,7 @@ namespace InABox.Core 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         public void Push<TNotification>(Platform platform, TNotification notification) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            where TNotification : BaseObject 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             foreach (var session in GetSessions(platform)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -81,10 +85,12 @@ namespace InABox.Core 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         public void AddPollHandler<TNotification>(PollHandler<TNotification> handler) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            where TNotification : BaseObject 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             Handlers.Add(handler); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         public void AddPollHandler<TNotification>(PollHandler<TNotification>.PollEvent poll) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            where TNotification : BaseObject 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             Handlers.Add(new PollHandler<TNotification>(poll)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 |