// add param public void AddParam(CommandParam param) { if (!ParamByKey.ContainsKey(param.Name)) { Params.Add(param); ParamByKey.Add(param.Name, param); } }
/// <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); }