/// <summary> /// スターティング情報、フォーメーション情報を取得(守備面ForSP) /// </summary> public JlgGameInfoViewModel GetStartingAndFormationWithDefenseForMobile(int GameID) { JlgGameInfoViewModel result = new JlgGameInfoViewModel(); // スターティングメンバーの情報を取得 result = GetStartingInformation(GameID); // フォーメーション情報を取得(守備面を反映) result.FormationChartDto = GetFormationInfoWithDefenseForMobile(GameID); // 返り値を返す return result; }
/// <summary> /// スターティングメンバーの情報を取得 /// </summary> public JlgGameInfoViewModel GetStartingInformation(int GameID) { JlgGameInfoViewModel result = new JlgGameInfoViewModel(); // チーム関連情報取得 int homeTeamID = GetHomeTeamID(GameID); int awayTeamID = GetAwayTeamID(GameID); // フォーメーション情報がない場合のGameIDの入れ物 int homeGameID = GameID; int awayGameID = GameID; // 表示用文言(予想) if (JlgCommon.GetStatusMatch(GameID.ToString()) == 0) { // フォーメーションの情報がまだない場合 if (JlgEntities.FormationInfo.Where(x => x.GameID == GameID).Count() == 0) { homeGameID = GetPreGameID(GameID, homeTeamID); awayGameID = GetPreGameID(GameID, awayTeamID); // 表示用文言(前節) result.FormationChartDto.StartingTypeForDisplay = JlgChartConst.PreviousMember; } else { result.FormationChartDto.StartingTypeForDisplay = JlgChartConst.ForecastMember; } } else { result.FormationChartDto.StartingTypeForDisplay = String.Empty; } // チーム関連情報取得 result.homeTeamSpec = GetTeamSpecByTeamId(homeTeamID, homeGameID); result.awayTeamSpec = GetTeamSpecByTeamId(awayTeamID, awayGameID); // プレイヤー関連情報取得 result.homePlayerSpec = GetJlgFormationInfo(homeGameID, homeTeamID); result.awayPlayerSpec = GetJlgFormationInfo(awayGameID, awayTeamID); //欠場選手情報 result.HomeInjuredMembers = GetInjuredPlayers(homeTeamID); result.AwayInjuredMembers = GetInjuredPlayers(awayTeamID); //出場停止選手情報 result.HomeSuspendedMembers = GetSuspendedPlayers(GameID, homeTeamID); result.AwaySuspendedMembers = GetSuspendedPlayers(GameID, awayTeamID); return result; }
/// <summary> /// 過去の直接対決の勝敗 試合別通算対戦成績_試合情報 /// </summary> /// <param name="viewModel"></param> /// <returns></returns> private IEnumerable<JlgPast5GamesModel> GetPast5Games(JlgGameInfoViewModel viewModel) { IEnumerable<JlgPast5GamesModel> result = new List<JlgPast5GamesModel>(); //ScheduleInfo 試合スケジュール_試合情報はHomeTeamIDがすでにわかっているので不要? System.Text.StringBuilder sb = new System.Text.StringBuilder(); sb.Append("SELECT "); sb.Append("GR.Gameid,GR.GameDate,HomeTeamid,HomeTeamnames,AwayTeamid,AwayTeamnames,HomeScore, AwayScore,O.Win,O.Lose, O.Draw "); sb.Append("FROM "); sb.Append("[SPLG].[JLG].[SCHEDULEINFOHE] SH "); sb.Append(" JOIN [SPLG].[JLG].[GAMEREPORTLG] GR "); sb.Append("ON SH.GAMEID = GR.GAMEID "); sb.Append("LEFT JOIN "); sb.Append(" "); sb.Append("( "); sb.Append(" "); sb.Append("SELECT "); sb.Append("OD.UNIQUEID,WIN,LOSE,DRAW "); sb.Append("FROM "); sb.Append("[SPLG].[COM].[EXPECTTARGET] ET "); sb.Append("LEFT JOIN "); sb.Append("( "); sb.Append("SELECT ODD.EXPECTTARGETID, "); sb.Append(" ODD.UNIQUEID, "); sb.Append(" Sum(CASE BE.BETSELECTID "); sb.Append(" WHEN 1 THEN ODD.ODDS "); sb.Append(" ELSE 0 "); sb.Append(" END) AS WIN, "); sb.Append(" Sum(CASE BE.BETSELECTID "); sb.Append(" WHEN 2 THEN ODD.ODDS "); sb.Append(" ELSE 0 "); sb.Append(" END) AS LOSE, "); sb.Append(" Sum(CASE BE.BETSELECTID "); sb.Append(" WHEN 3 THEN ODD.ODDS "); sb.Append(" ELSE 0 "); sb.Append(" END) AS DRAW "); sb.Append("FROM [SPLG].[COM].[ODDSINFO] ODD "); sb.Append(" JOIN [SPLG].[COM].[BETSELECTMASTER] BE ON ODD.BETSELECTMASTERID = BE.BETSELECTMASTERID "); sb.Append(" WHERE ODD.CLASSIFICATIONTYPE = 2 "); sb.Append(" AND ODD.EXPECTTARGETID = 4 "); sb.Append(" AND ODD.UNIQUEID = " + viewModel.GameID + " "); sb.Append("GROUP BY ODD.EXPECTTARGETID, "); sb.Append(" ODD.UNIQUEID "); sb.Append(" "); sb.Append(") OD "); sb.Append("ON ET.EXPECTTARGETID = OD.EXPECTTARGETID AND "); sb.Append("ET.UNIQUEID = OD.UNIQUEID "); sb.Append("WHERE "); sb.Append("ET.SPORTSID = 2 "); sb.Append(" "); sb.Append(" "); sb.Append(") O "); sb.Append("ON O.UNIQUEID = SH.GAMEID "); sb.Append("WHERE ((SH.HOMETEAMID = " + viewModel.HomeTeamID + " "); sb.Append("AND SH.AWAYTEAMID = " + viewModel.AwayTeamID + ") "); sb.Append("OR (SH.HOMETEAMID = " + viewModel.AwayTeamID + " "); sb.Append("AND SH.AWAYTEAMID = " + viewModel.HomeTeamID + ")) "); sb.Append("AND SH.GAMEID != " + viewModel.GameID + " "); sb.Append("AND GR.GAMEDATE < " + viewModel.GameDateManaged + " "); string query = sb.ToString(); var lines = com.Database.SqlQuery<JlgPast5GamesModel>(@query).ToList<JlgPast5GamesModel>(); return result; }
public ActionResult ShowGameInfoPlayerInfo(int? gameID, JlgGameInfoViewModel viewModel = null) { //Htmlアクションから呼ばれた場合、別プロセスとなるのでviewModelを取得しなおす if (viewModel == null) viewModel = getViewModel(gameID); return PartialView("_JlgGameInfoPlayerInfo", viewModel); }
public ActionResult GetStartingMembers(int GameID) { // Gameステータス取得 int GameStatus = setGameStatus(GameID); // ビューに渡す入れ物 JlgGameInfoViewModel ViewModel = new JlgGameInfoViewModel(); if (GameStatus == 0) { ViewModel = jlgService.GetStartingInformation(GameID); return PartialView("_JlgStartingMembersPre", ViewModel); } else { ViewModel = GetStartingInfo(ViewModel, GameID); return PartialView("_JlgStartingMembers", ViewModel); } }
// Todo:JlgServiceにうつす /// <summary> /// 各チームのスターティングメンバーの情報を取得 /// </summary> public JlgGameInfoViewModel GetStartingInfo(JlgGameInfoViewModel viewModel,int gameID) { // チーム関連情報取得 int homeTeamID = jlgService.GetHomeTeamID(gameID); int awayTeamID = jlgService.GetAwayTeamID(gameID); // チーム情報取得 viewModel.homeTeamSpec = jlgService.GetTeamSpecByTeamId(homeTeamID,gameID); viewModel.awayTeamSpec = jlgService.GetTeamSpecByTeamId(awayTeamID, gameID); ////////////////////////////////////////////////////////////////////// //スターティングメンバー情報 ベンチ入り選手情報 //得点・警告、退場・交代情報 //ホーム viewModel.HomeStartingMembers = jlgService.GetStartingPlayerGameInfos((int)gameID, 1); viewModel.HomeSubMembers = jlgService.GetSubPlayerGameInfos((int)gameID, 1); viewModel.HomeGoalInfos = GetGameInfos((int)gameID, 1); viewModel.HomeWarningInfos = GetWarningInfos((int)gameID, 1); //アウエイ viewModel.AwayStartingMembers = jlgService.GetStartingPlayerGameInfos((int)gameID, 2); viewModel.AwaySubMembers = jlgService.GetSubPlayerGameInfos((int)gameID, 2); viewModel.AwayGoalInfos = GetGameInfos((int)gameID, 2); viewModel.AwayWarningInfos = GetWarningInfos((int)gameID, 2); //---------------------------------------------------------------------- //欠場選手情報 viewModel.HomeInjuredMembers = jlgService.GetInjuredPlayers((int)viewModel.HomeTeamID); viewModel.AwayInjuredMembers = jlgService.GetInjuredPlayers((int)viewModel.AwayTeamID); //---------------------------------------------------------------------- //出場停止選手情報 viewModel.HomeSuspendedMembers = jlgService.GetSuspendedPlayers(gameID, (int)viewModel.HomeTeamID); viewModel.AwaySuspendedMembers = jlgService.GetSuspendedPlayers(gameID, (int)viewModel.AwayTeamID); //---------------------------------------------------------------------- //得点・警告、退場・交代情報 List<JlgPlayerGameDetailInfoModel> homeStartMamberGameDetailCardInfos, homeSubMamberGameDetailCardInfos, awayStartMamberGameDetailCardInfos, awaySubMamberGameDetailCardInfos; List<JlgPlayerGameDetailInfoModel> homeStartMamberGameDetailGoalInfos, homeSubMamberGameDetailGoalInfos, awayStartMamberGameDetailGoalInfos, awaySubMamberGameDetailGoalInfos; List<JlgPlayerGameDetailInfoModel> homeStartMamberGameDetailInInfos, homeSubMamberGameDetailInInfos, awayStartMamberGameDetailInInfos, awaySubMamberGameDetailInInfos; List<JlgPlayerGameDetailInfoModel> homeStartMamberGameDetailOutInfos, homeSubMamberGameDetailOutInfos, awayStartMamberGameDetailOutInfos, awaySubMamberGameDetailOutInfos; GetPlayerGameDetailInfos(viewModel.GameID, 1, 1, out homeStartMamberGameDetailCardInfos, out homeSubMamberGameDetailCardInfos); GetPlayerGameDetailInfos(viewModel.GameID, 2, 1, out awayStartMamberGameDetailCardInfos, out awaySubMamberGameDetailCardInfos); GetPlayerGameDetailInfos(gameID, 1, 2, out homeStartMamberGameDetailGoalInfos, out homeSubMamberGameDetailGoalInfos); GetPlayerGameDetailInfos(gameID, 2, 2, out awayStartMamberGameDetailGoalInfos, out awaySubMamberGameDetailGoalInfos); GetPlayerGameDetailInfos(gameID, 1, 3, out homeStartMamberGameDetailInInfos, out homeSubMamberGameDetailInInfos); GetPlayerGameDetailInfos(gameID, 2, 3, out awayStartMamberGameDetailInInfos, out awaySubMamberGameDetailInInfos); GetPlayerGameDetailInfos(gameID, 1, 4, out homeStartMamberGameDetailOutInfos, out homeSubMamberGameDetailOutInfos); GetPlayerGameDetailInfos(gameID, 2, 4, out awayStartMamberGameDetailOutInfos, out awaySubMamberGameDetailOutInfos); viewModel.HomeStartingMamberGameDetailCardInfos = homeStartMamberGameDetailCardInfos; viewModel.HomeSubMamberGameDetailCardInfos = homeSubMamberGameDetailCardInfos; viewModel.AwayStartingMamberGameDetailCardInfos = awayStartMamberGameDetailCardInfos; viewModel.AwaySubMamberGameDetailCardInfos = awaySubMamberGameDetailCardInfos; viewModel.HomeStartingMamberGameDetailGoalInfos = homeStartMamberGameDetailGoalInfos; viewModel.HomeSubMamberGameDetailGoalInfos = homeSubMamberGameDetailGoalInfos; viewModel.AwayStartingMamberGameDetailGoalInfos = awayStartMamberGameDetailGoalInfos; viewModel.AwaySubMamberGameDetailGoalInfos = awaySubMamberGameDetailGoalInfos; viewModel.HomeStartingMamberGameDetailInInfos = homeStartMamberGameDetailInInfos; viewModel.HomeSubMamberGameDetailInInfos = homeSubMamberGameDetailInInfos; viewModel.AwayStartingMamberGameDetailInInfos = awayStartMamberGameDetailInInfos; viewModel.AwaySubMamberGameDetailInInfos = awaySubMamberGameDetailInInfos; viewModel.HomeStartingMamberGameDetailOutInfos = homeStartMamberGameDetailOutInfos; viewModel.HomeSubMamberGameDetailOutInfos = homeSubMamberGameDetailOutInfos; viewModel.AwayStartingMamberGameDetailOutInfos = awayStartMamberGameDetailOutInfos; viewModel.AwaySubMamberGameDetailOutInfos = awaySubMamberGameDetailOutInfos; return viewModel; }
/// <summary> /// ビューモデルのセット /// </summary> /// <param name="gameID"></param> /// <returns></returns> private JlgGameInfoViewModel getViewModel(int? gameID) { JlgGameInfoViewModel viewModel = new JlgGameInfoViewModel(); viewModel.GameID = (int)gameID; viewModel.GameStatus = setGameStatus(gameID); long memberId = 0; object currentUser = Session["CurrentUser"]; if (currentUser != null) memberId = Convert.ToInt64(currentUser.ToString()); //一試合スケジュール_試合情報 viewModel.ScheduleInfo = (from si in jlg.ScheduleInfo where si.GameID == gameID select si).FirstOrDefault(); //一試合別通算対戦成績_試合情報 viewModel.ScheduleInfoHE = (from sih in jlg.ScheduleInfoHE where sih.GameID == gameID select sih).FirstOrDefault(); //一試合速報_ヘッダー情報 viewModel.GameReportLG = (from gr in jlg.GameReportLG where gr.GameID == gameID select gr).FirstOrDefault(); #region 試合前・試合後共通情報 ////////////////////////////////////////////////////////////////////// //試合情報 Htmlアクション ////////////////////////////////////////////////////////////////////// //フォローユーザーの予想 if (memberId > 0) { //ホームの勝ち viewModel.FollowMembersBetToWin = Utils.GetExpectingMembers(com, (int)gameID, memberId, 4, Constants.JLG_SPORT_ID, 1); viewModel.FollowMembersBetToDraw = Utils.GetExpectingMembers(com, (int)gameID, memberId, 4, Constants.JLG_SPORT_ID, 3); viewModel.FollowMembersBetToLose = Utils.GetExpectingMembers(com, (int)gameID, memberId, 4, Constants.JLG_SPORT_ID, 2); } ////////////////////////////////////////////////////////////////////// //試合前 この試合の投稿記事 //記事[新着順最大3件] // //TODO 試合で絞る共通メソッド待ち、5-2投稿記事 検索結果へのとびかた待ち // viewModel.PostedInfos = Splg.Controllers.PostedController.GetRecentPosts(2, Constants.JLG_SPORT_ID, null, 1); ////////////////////////////////////////////////////////////////////// //カテゴリーニュース Htmlアクション5件 (ピックアップニュース) //ホームチーム Htmlアクション5件 //ビジターチーム Htmlアクション5件 ///////////////////////////////////////////////////////////////////////// //次の節の試合情報 予想してみよう //試合スケジュール_試合情報 //Htmlアクション ShowGameInfo type=5 teamID occasionNo = viewMode.OccasionNo + 1 // フォーメーション情報取得 viewModel.FormationChartDto = jlgService.GetFormationInfoWithAttackForMobile(viewModel.GameID); #endregion #region 試合前のみ if (viewModel.GameStatus < 1) { ////////////////////////////////////////////////////////////////////// //対相手チームの成績 (05/07菅野さん指示で試合後のみに) //過去5試合_試合情報(ホーム) viewModel.List5GamesHomeInHistory = GetLast5HomeGames(viewModel.HomeTeamID); //対相手チームの成績 //過去5試合_試合情報(アウェイ) viewModel.List5GamesAwayInHistory = GetLast5AwayGames(viewModel.AwayTeamID); ////////////////////////////////////////////////////////////////////// //対相手チームの成績 //試合別通算対戦成績_試合情報 viewModel.List5GamesInHistory = GetPast5Games(viewModel); ////////////////////////////////////////////////////////////////////// //直近5試合のチーム勝敗 HTMLには無い(05/07菅野さん指示で試合後のみに) // ホームチームとアウェーチームのスペックを取得 viewModel.homeTeamSpec = jlgService.GetTeamSpecByTeamId(viewModel.HomeTeamID); viewModel.awayTeamSpec = jlgService.GetTeamSpecByTeamId(viewModel.AwayTeamID); } #endregion #region 試合中 試合後 if (viewModel.GameStatus > 0) { // スターティングメンバー情報取得 viewModel = GetStartingInfo(viewModel,(int)gameID); ////警告、退場情報 //List<JlgPlayerGameInfoModel> homeStartMamberWarningInfos, homeSubMamberWarningInfos, awayStartMamberWarningInfos, awaySubMamberWarningInfos; //GetPlayerWarningInfos((int)gameID, 1, out homeStartMamberWarningInfos, out homeSubMamberWarningInfos); //GetPlayerWarningInfos((int)gameID, 2, out awayStartMamberWarningInfos, out awaySubMamberWarningInfos); //viewModel.HomeStartingMamberWarningInfos = homeStartMamberWarningInfos; //viewModel.HomeSubMamberWarningInfos = homeSubMamberWarningInfos; //viewModel.AwayStartingWarningInfos = awayStartMamberWarningInfos; //viewModel.AwaySubMamberWarningInfos = awaySubMamberWarningInfos; ////////////////////////////////////////////////////////////////////// //テキスト速報 コメント配信_コメント情報 var teamDic = new Dictionary<int, string>(); teamDic.Add(viewModel.HomeTeamID, viewModel.HomeTeamNameS); teamDic.Add(viewModel.AwayTeamID, viewModel.AwayTeamNameS); viewModel.ListGameTexts = GetComment(gameID, teamDic); //戦評 viewModel.Recaps = GetRecap(gameID); ////////////////////////////////////////////////////////////////////// //PK情報の取得 //if (viewModel.HasPK) //{ viewModel.HomePKInfos = GetPKInfo((int)gameID, 1); viewModel.AwayPKInfos = GetPKInfo((int)gameID, 2); //} ////////////////////////////////////////////////////////////////////// //ホーム・アウェイ別得点状況 HTMLなし ////////////////////////////////////////////////////////////////////// //試合経過 HTMLなし } #endregion #region 試合後 if (viewModel.GameStatus > 1) { ////////////////////////////////////////////////////////////////////// //試合データ 一試合速報_試合終了情報 viewModel.GameEndInfo = GetGameEndInfo(gameID); ////////////////////////////////////////////////////////////////////// //試合結果 一試合速報_チーム情報 viewModel.HomeGameScore = GetGameEndScoreInfo(gameID, 1); viewModel.AwayGameScore = GetGameEndScoreInfo(gameID, 2); ////////////////////////////////////////////////////////////////////// //試合結果 スタッツ viewModel.HomeGameStats = GetGameStats((int)gameID, (int)viewModel.HomeTeamID); viewModel.AwayGameStats = GetGameStats((int)gameID, (int)viewModel.AwayTeamID); } #endregion return viewModel; }