// add param
 public void AddParam(CommandParam param)
 {
     if (!ParamByKey.ContainsKey(param.Name))
     {
         Params.Add(param);
         ParamByKey.Add(param.Name, param);
     }
 }
Exemple #2
0
        /// <summary>
        /// 「MLBのWebAPIレスポンスのチームデータ」を「Twitter用のグループ化したチームデータ」に変換
        /// </summary>
        /// <param name="resultTeamList">WebAPIレスポンスのチームデータ(非グループ化)</param>
        /// <returns></returns>
        private static Twitter.Param MapToTwitterParam(List <DetailResult> resultTeamList)
        {
            Twitter.Param twitterParam = new Twitter.Param();

            // WebAPIレスポンスの順位データ(JSON)をリーグごと・地区ごとのチームリストに変換
            var teamsListByLeageDivision = resultTeamList
                                           .GroupBy(team => new { team.League, team.Division })
                                           .ToList();

            // キーデータ(リーグ・地区)ごとにチームデータをTwitter用Paramクラスに詰め替え
            twitterParam.TeamsList = teamsListByLeageDivision
                                     .Select(teams =>
            {
                // キーデータ(リーグ・地区)のマッピング
                ParamByKey paramTeamListData = new ParamByKey
                {
                    Key = new GroupKey(),
                    // 「#MLB #<1位チーム名>」をタグ付けメッセージとする
                    TagMessage = "#MLB #" + Regex.Replace(teams.First().Name, @"\s", ""),
                    Teams      = new List <DetailParam>()
                };
                paramTeamListData.Key.League   = teams.Key.League;
                paramTeamListData.Key.Division = teams.Key.Division;

                // チームデータのマッピング
                int ranking             = 0;
                paramTeamListData.Teams = teams
                                          .Select(team =>
                {
                    DetailParam param = new DetailParam
                    {
                        Ranking = ++ranking
                    };
                    _mapper.Map(team, param);
                    return(param);
                }).ToList();
                return(paramTeamListData);
            }).ToList();

            return(twitterParam);
        }