/// <summary> /// チャートスクリプト取得 /// </summary> public ChartResult GetChartResult(IChartDto chartDto) { var targetScript = Flotr2ScriptResource.FormationChartScriptTemplete; FormationChartDto = (FormationChartDto)chartDto; // コンテナの設定 targetScript = InjectScriptContainer(targetScript, FormationChartDto); // 共通部分の情報 var partialScript = Flotr2ScriptPartsResource.FormationSharedTemplete; //プロパティ設定 partialScript = InjectParameterToProperties(partialScript, FormationChartDto.FormationChartProperties.SharedProperties); // ターゲットスクリプトへの反映 targetScript = InjectParameter(targetScript, Flotr2Const.FormationSheredTemplete, partialScript); return new ChartResult() { ChartScript = targetScript, ChartContainerSettings = new ChartContainerSettings() { ChartContainerId = FormationChartDto.FormationChartContainer.ViewContainerId, ChartContainerClass = FormationChartDto.FormationChartContainer.ViewContainerClass } }; }
public ActionResult ShowFormationChart(FormationChartDto formationChartDto) { var flotr2ChartProvider = new Flotr2ChartProvider(); var chartResult = flotr2ChartProvider.GetChartResult(formationChartDto, Flotr2Const.ChartType.Formation); return PartialView("~/Views/Chart/Mobile/_Flotr2Chart.cshtml", chartResult); }
public JlgGameInfoViewModel() { homeTeamSpec = new JlgTeamSpec(); awayTeamSpec = new JlgTeamSpec(); FormationChartDto = new FormationChartDto(); }
/// <summary> /// コンテナーのstring生成 /// </summary> private string InjectScriptContainer(string targetScript, FormationChartDto formationChartDto) { var result = targetScript; //コンテナーId設定 result = InjectParameter(result, ContainerParameterKey.ContainerId, FormationChartDto.FormationChartContainer.ViewContainerId); List<string> containerScript = new List<string>(); // ホームチームの情報 // フォーメーションの情報 // 位置を示す円(バブルチャート) var partialScript = Flotr2ScriptPartsResource.FormationBubblesTemplete; //コンテナー設定(バブルチャートの位置) partialScript = InjectScriptParameterByDataSource(partialScript, FormationChartDto.FormationChartContainer.HomePositionContainer); //プロパティ設定(バブルチャート関連) partialScript = InjectParameterToProperties(partialScript, FormationChartDto.FormationChartProperties.HomePositionProperties); // MouseON時ファンクションの設定 partialScript = InjectParameterToTrackFormatter(partialScript, FormationChartDto.FormationChartContainer.HomePlayerIDList, FormationChartDto.FormationChartContainer.HomePositionContainer, Flotr2Const.Home); // コンテナーの中身を追加 containerScript.Add(partialScript); // 選手名のマーカー partialScript = Flotr2ScriptPartsResource.FormationMarkersTemplete; //コンテナー設定(マーカーの位置) partialScript = InjectScriptParameterByDataSource(partialScript, FormationChartDto.FormationChartContainer.HomePlayerNameContainer); //プロパティ設定(マーカー関連) partialScript = InjectParameterToProperties(partialScript, FormationChartDto.FormationChartProperties.HomePlayerNameProperties); // Label表示のファンクション設定 partialScript = InjectParameterToLabelFormatter(partialScript, FormationChartDto.FormationChartContainer.HomePlayerNameContainer, Flotr2Const.HomePlayerName); // コンテナーの中身を追加 containerScript.Add(partialScript); // 選手背番号のマーカー partialScript = Flotr2ScriptPartsResource.FormationMarkersTemplete; //コンテナー設定(マーカーの位置) partialScript = InjectScriptParameterByDataSource(partialScript, FormationChartDto.FormationChartContainer.HomePlayerNoContainer); //プロパティ設定(マーカー関連) partialScript = InjectParameterToProperties(partialScript, FormationChartDto.FormationChartProperties.HomePlayerNoProperties); // Label表示のファンクション設定 partialScript = InjectParameterToLabelFormatter(partialScript, FormationChartDto.FormationChartContainer.HomePlayerNoContainer, Flotr2Const.HomePlayerNo); // コンテナーの中身を追加 containerScript.Add(partialScript); // アウェーチームの情報 // フォーメーションの情報 // 位置を示す円(バブルチャート) partialScript = Flotr2ScriptPartsResource.FormationBubblesTemplete; //コンテナー設定(バブルチャートの位置) partialScript = InjectScriptParameterByDataSource(partialScript, FormationChartDto.FormationChartContainer.AwayPositionContainer); //プロパティ設定(バブルチャート関連) partialScript = InjectParameterToProperties(partialScript, FormationChartDto.FormationChartProperties.AwayPositionProperties); // MouseON時ファンクションの設定 partialScript = InjectParameterToTrackFormatter(partialScript, FormationChartDto.FormationChartContainer.AwayPlayerIDList, FormationChartDto.FormationChartContainer.AwayPositionContainer, Flotr2Const.Away); // コンテナーの中身を追加 containerScript.Add(partialScript); // 選手名のマーカー partialScript = Flotr2ScriptPartsResource.FormationMarkersTemplete; //コンテナー設定 partialScript = InjectScriptParameterByDataSource(partialScript, FormationChartDto.FormationChartContainer.AwayPlayerNameContainer); //プロパティ設定 partialScript = InjectParameterToProperties(partialScript, FormationChartDto.FormationChartProperties.AwayPlayerNameProperties); // Label表示のファンクション設定 partialScript = InjectParameterToLabelFormatter(partialScript, FormationChartDto.FormationChartContainer.AwayPlayerNameContainer,Flotr2Const.AwayPlayerName); // コンテナーの中身を追加 containerScript.Add(partialScript); // 選手背番号のマーカー partialScript = Flotr2ScriptPartsResource.FormationMarkersTemplete; //コンテナー設定 partialScript = InjectScriptParameterByDataSource(partialScript, FormationChartDto.FormationChartContainer.AwayPlayerNoContainer); //プロパティ設定 partialScript = InjectParameterToProperties(partialScript, FormationChartDto.FormationChartProperties.AwayPlayerNoProperties); // Label表示のファンクション設. partialScript = InjectParameterToLabelFormatter(partialScript, FormationChartDto.FormationChartContainer.AwayPlayerNoContainer, Flotr2Const.AwayPlayerNo); // コンテナーの中身を追加 containerScript.Add(partialScript); // カンマ区切りに展開したコンテナーを反映 result = InjectParameter(result, ContainerParameterKey.Container, containerScript.CommaSeparated()); return result; }
/// <summary> /// フォーメーション(守備力含、モバイル用)取得 /// </summary> public FormationChartDto GetFormationInfoWithDefenseForMobile(int GameID) { // 返り値のための入れ物 var formationChartDto = new FormationChartDto(); // ID,classセット formationChartDto.FormationChartContainer.ViewContainerId = JlgChartConst.FormationContainerID; formationChartDto.FormationChartContainer.ViewContainerClass = JlgChartConst.ChartCssClassName.formation_chart.ToString(); // チームID取得 int homeTeamID = GetHomeTeamID(GameID); int awayTeamID = GetAwayTeamID(GameID); // チームID投入 formationChartDto.FormationChartContainer.HomeTeamID = homeTeamID; formationChartDto.FormationChartContainer.AwayTeamID = awayTeamID; // フォーメーション情報がない場合の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); // 表示用文言(前節) formationChartDto.StartingTypeForDisplay = JlgChartConst.PreviousMember; } else { formationChartDto.StartingTypeForDisplay = JlgChartConst.ForecastMember; } } else { formationChartDto.StartingTypeForDisplay = String.Empty; } // コンテナーのデータ群取得 // ホームチームのデータ取得 List<JlgFormationInfo> homeformationInfo = GetJlgFormationInfo(homeGameID,homeTeamID); // ホームチームフォーメーションの配置、攻撃力のデータ取得 formationChartDto.FormationChartContainer.HomePositionContainer = GetFormationPositionWithDefenseForMobile(homeformationInfo); // ホームチームフォーメーションの選手名取得 formationChartDto.FormationChartContainer.HomePlayerNameContainer = GetFormationPlayerNameForMobile(homeformationInfo); // ホームチームフォーメーションの選手背番号取得 formationChartDto.FormationChartContainer.HomePlayerNoContainer = GetFormationPlayerNoForMobile(homeformationInfo); // ホームチームフォーメーションの選手ID取得 formationChartDto.FormationChartContainer.HomePlayerIDList = GetFormationPlayerIDList(homeformationInfo); // アウェーチームのデータ取得 List<JlgFormationInfo> awayformationInfo = GetJlgFormationInfo(awayGameID,awayTeamID); // アウェーチームフォーメーションのデータ取得 formationChartDto.FormationChartContainer.AwayPositionContainer = GetFormationPositionWithDefenseForMobile(awayformationInfo); // アウェーチームフォーメーションの選手名取得 formationChartDto.FormationChartContainer.AwayPlayerNameContainer = GetFormationPlayerNameForMobile(awayformationInfo); // アウェーチームフォーメーションの選手背番号取得 formationChartDto.FormationChartContainer.AwayPlayerNoContainer = GetFormationPlayerNoForMobile(awayformationInfo); // アウェーチームフォーメーションの選手ID取得 formationChartDto.FormationChartContainer.AwayPlayerIDList = GetFormationPlayerIDList(awayformationInfo); // プロパティのデータ群取得 formationChartDto.FormationChartProperties = GetFormationChartProperties(); // 返り値セット return formationChartDto; }