예제 #1
0
 public StatConnecter(IConnectableStat <TIn, TOut> connection, IStat <TOut, TStat> stat)
 {
     this.connection     = connection;
     this.stat           = stat;
     connection.Added   += (_, item) => stat.Add(item);
     connection.Deleted += (_, item) => stat.Delete(item);
 }
예제 #2
0
 private void AddInGroup(IStat <TIn, TOut> groupStat, TIn item)
 {
     if (!groupStat.IsEmpty)
     {
         OnDeleted(groupStat.Value);
     }
     groupStat.Add(item);
     OnAdded(groupStat.Value);
 }
예제 #3
0
 protected void HandleEvents <TTarget, TResult>(IStat <TTarget, TResult> stat, params Event <TTarget>[] events)
 {
     foreach (var e in events)
     {
         if (e.IsAddEvent)
         {
             stat.Add(e.Value);
         }
         else
         {
             stat.Delete(e.Value);
         }
     }
 }
예제 #4
0
 public void Add(TIn item)
 {
     stat.Add(item);
 }
예제 #5
0
 public void Update(MatchInfo matchInfo)
 {
     logger.ConditionalTrace("Update reports with match: {0}", matchInfo);
     recentMatches.Add(matchInfo);
 }
예제 #6
0
 public void Update(PlayerInfo playerInfo)
 {
     logger.ConditionalTrace("Update reports with player: {0}", playerInfo);
     bestPlayers.Add(playerInfo);
 }
예제 #7
0
 public void Update(ServerInfo serverInfo)
 {
     logger.ConditionalTrace("Update reports with server: {0}", serverInfo);
     allServers.Add(serverInfo);
     popularServers.Add(serverInfo);
 }