Ejemplo n.º 1
0
        /// <summary>
        /// スターティング情報、フォーメーション情報を取得(守備面ForSP)
        /// </summary>
        public JlgGameInfoViewModel GetStartingAndFormationWithDefenseForMobile(int GameID)
        {
            JlgGameInfoViewModel result = new JlgGameInfoViewModel();

            // スターティングメンバーの情報を取得
            result = GetStartingInformation(GameID);

            // フォーメーション情報を取得(守備面を反映)
            result.FormationChartDto = GetFormationInfoWithDefenseForMobile(GameID);

            // 返り値を返す
            return result;
        }
Ejemplo n.º 2
0
        /// <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;
        }
Ejemplo n.º 3
0
        /// <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;
        }
Ejemplo n.º 4
0
        public ActionResult ShowGameInfoPlayerInfo(int? gameID, JlgGameInfoViewModel viewModel = null)
        {
            //Htmlアクションから呼ばれた場合、別プロセスとなるのでviewModelを取得しなおす
            if (viewModel == null)
                viewModel = getViewModel(gameID);

            return PartialView("_JlgGameInfoPlayerInfo", viewModel);
        }
Ejemplo n.º 5
0
        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);
            }
        }
Ejemplo n.º 6
0
        // 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;
        }
Ejemplo n.º 7
0
        /// <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;
        }