private void CreateFixtureListView() { if (_searchTeamIDs == null || _searchTeamNames == null || _searchTeamIDs.Length != _searchTeamNames.Length) { return; } // 텝 셋팅 for (int i = 0; i < _searchTeamIDs.Length; i++) { tabContainer.Items.Add(new MenuItem($" {_searchTeamNames[i].ToString()} ", i.ToString())); } // set standing _leagueStanding = Singleton.Get <RedisCacheManager>() .Get <IList <WebFormModel.FootballStandings> > ( () => RequestLoader.FootballStandingsByLeagueId(_searchLeagueID), RequestLoader.Locker_FootballStandingsByLeagueId, DateTime.Now.AddHours(1), RedisKeyMaker.FootballStandingsByLeagueId(_searchLeagueID) ); // 그리드 아이템 셋팅 BindData(_searchTeamIDs); }
public IQueryable <dynamic> GetFixtures() { // 관심 경기 데이터 가져오기 var interestedFixtures = Singleton.Get <RedisCacheManager>() .GetNullable <IList <WebFormModel.FootballFixture> > ( RedisKeyMaker.FootballInterestedFixture() ); if (interestedFixtures == null) { return(null); } // step1. 시간 순으로 정렬 var sortedByStartDate = interestedFixtures?.OrderBy(elem => elem.MatchTime); // step2. 데이터를 리그, 시작시간으로 그룹화 var group_query = sortedByStartDate.GroupBy(elem => new { League = elem.LeagueId, StartTime = elem.MatchTime }); var result_query = from queryData in group_query select new { League = queryData.FirstOrDefault().League.Name, queryData.Key.StartTime, queryData.FirstOrDefault()?.League.Flag, Fixtures = queryData.ToArray() }; return(result_query.AsQueryable()); }
protected void GV_FootballFixtures_RowDataBound(object sender, GridViewRowEventArgs e) { if (e.Row.RowType == DataControlRowType.DataRow) { var dataItem = e.Row.DataItem as WebFormModel.FootballFixture; var chk_interestedFixture = e.Row.FindControl("chk_interestedFixture") as CheckBox; var homeHyperLink = e.Row.FindControl("hl_homeTeamLink") as HyperLink; var awayHyperLink = e.Row.FindControl("hl_awayTeamLink") as HyperLink; homeHyperLink.NavigateUrl = GetRouteUrl("FootballTeamById", new { TeamId = dataItem.AwayTeam.TeamId }); awayHyperLink.NavigateUrl = GetRouteUrl("FootballTeamById", new { TeamId = dataItem.AwayTeam.TeamId }); if (dataItem != null) { chk_interestedFixture.Checked = true; // 리그 5위 이상 팀 Bold체 var leaugeStandings = Singleton.Get <RedisCacheManager>() .Get <IList <WebFormModel.FootballStandings> > ( () => RequestLoader.FootballStandingsByLeagueId(dataItem.LeagueId), RequestLoader.Locker_FootballStandingsByLeagueId, DateTime.Now.AddHours(4), RedisKeyMaker.FootballStandingsByLeagueId(dataItem.LeagueId) ); var homeStandingInfo = leaugeStandings.Where(elem => elem.TeamId == dataItem.HomeTeam.TeamId).FirstOrDefault(); var awayStandingInfo = leaugeStandings.Where(elem => elem.TeamId == dataItem.AwayTeam.TeamId).FirstOrDefault(); if (homeStandingInfo?.Rank <= 5) { homeHyperLink.Font.Bold = true; } if (awayStandingInfo?.Rank <= 5) { awayHyperLink.Font.Bold = true; } } // 단폴픽 체크 var prediction = Singleton.Get <RedisCacheManager>() .Get <IList <WebFormModel.FootballPrediction> > ( () => RequestLoader.FootballPredictionByFixtureId(dataItem.FixtureId), RequestLoader.Locker_FootballPredictionByFixtureId, DateTime.Now.AddDays(1), RedisKeyMaker.FootballPredictionByFixtureId(dataItem.FixtureId) ).FirstOrDefault(); if (prediction?.MatchWinner?.Trim(' ').Length == 1) { e.Row.BackColor = Color.LightGreen; } } }
protected void Page_Load(object sender, EventArgs e) { if (IsPostBack) { return; } int fixtureId = int.Parse(this.Page.RouteData.Values["FixtureId"].ToString()); var fixture = Singleton.Get <RedisCacheManager>() .Get <WebFormModel.FootballFixture> ( () => RequestLoader.FootballFixtureById(fixtureId), RequestLoader.Locker_FootballFixtureById, DateTime.Now.AddHours(1), RedisKeyMaker.FootballFixtureById(fixtureId) ); var curLeague = Singleton.Get <RedisCacheManager>() .Get <WebFormModel.FootballLeague> ( () => RequestLoader.FootballSeasonsByLeagueId(fixture.LeagueId), RequestLoader.Locker_FootballSeasonsByLeagueId, DateTime.Now.AddDays(1), RedisKeyMaker.FootballSeasonsByLeagueId(fixture.LeagueId) ); // Standing ctrl_footballStanding.SetSearchTeamID(fixture.HomeTeam.TeamId, fixture.AwayTeam.TeamId); ctrl_footballStanding.SetSearchLeagueID(fixture.LeagueId); // H2H ctrl_FootballH2HFixtureList.SetSearchTeamID(fixture.HomeTeam.TeamId, fixture.AwayTeam.TeamId); // FixturesResult ctrl_footballTeamFixtureResults.SetSearchTeamID(fixture.HomeTeam.TeamId, fixture.AwayTeam.TeamId); ctrl_footballTeamFixtureResults.SetSearchTeamName(fixture.HomeTeam.TeamName, fixture.AwayTeam.TeamName); ctrl_footballTeamFixtureResults.SetSearchLeagueID(fixture.LeagueId); // Player //ctrl_footballPlayerList.SetSearchTeamID(fixture.HomeTeam.TeamID, fixture.AwayTeam.TeamID); //ctrl_footballPlayerList.SetSearchTeamName(fixture.HomeTeam.TeamName, fixture.AwayTeam.TeamName); //ctrl_footballPlayerList.SetSearchLeagueID(curLeague.LeagueID); //int startYear = curLeague.SeasonStart.Year; //int endYear = curLeague.SeasonEnd.Year; //if (startYear != endYear) // ctrl_footballPlayerList.SetSearchSeason($"{startYear}-{endYear}"); //else // ctrl_footballPlayerList.SetSearchSeason($"{startYear}"); }
public WebFormModel.FootballPrediction GetFootballPrediction([RouteData] int fixtureID) { //TODO FixtureDetail 버전으로 바꾸기.. var predictions = Singleton.Get <RedisCacheManager>() .Get <IList <WebFormModel.FootballPrediction> > ( () => RequestLoader.FootballPredictionByFixtureId(fixtureID), RequestLoader.Locker_FootballPredictionByFixtureId, DateTime.Now.AddDays(1), RedisKeyMaker.FootballPredictionByFixtureId(fixtureID) ); return(predictions.FirstOrDefault()); }
public IEnumerable <WebFormModel.FootballStandings> GetStandings() { if (_searchLeagueID == 0 || _searchTeamIDs == null || _searchTeamIDs.Length < 2) { return(null); } var standings = Singleton.Get <RedisCacheManager>() .Get <IList <WebFormModel.FootballStandings> > ( () => RequestLoader.FootballStandingsByLeagueId(_searchLeagueID), RequestLoader.Locker_FootballStandingsByLeagueId, DateTime.Now.AddHours(1), RedisKeyMaker.FootballStandingsByLeagueId(_searchLeagueID) ); return(standings); }
/// <summary> /// 관심 경기 체크 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void chk_fixture_InterestedIndexChanged(Object sender, EventArgs e) { CheckBox chkbox = sender as CheckBox; if (chkbox == null) { return; } // 관심 경기 데이터 가져오기 var interestedFixtures = Singleton.Get <RedisCacheManager>() .GetNullable <IList <WebFormModel.FootballFixture> > ( RedisKeyMaker.FootballInterestedFixture() ); // 제거할 경기 int interestedFixtureID = int.Parse(chkbox.ToolTip); var interestedFixture = interestedFixtures.Where(elem => elem.FixtureId == interestedFixtureID).FirstOrDefault(); if (interestedFixture == null) { // 이미 제거된 경기 // refrash Page.Response.Redirect(Page.Request.Url.ToString(), true); return; } // 관심 경기에서 제거 interestedFixtures.Remove(interestedFixture); // 레디스에 저장 Singleton.Get <RedisCacheManager>().Set ( JsonConvert.SerializeObject(interestedFixtures), RequestLoader.Locker_FootballInterestedFixture, new DateTime(9999, 12, 31), RedisKeyMaker.FootballInterestedFixture() ); // refrash Page.Response.Redirect(Page.Request.Url.ToString(), true); }
public IEnumerable <Pose_sports_statistics.Models.FootballFixture> GetH2HFixtures() { if (_searchTeamIDs == null || _searchTeamIDs.Length < 2) { return(null); } var fixtures = Singleton.Get <RedisCacheManager>() .Get <IList <WebFormModel.FootballFixture> > ( () => RequestLoader.FootballH2HFixtureByTeamId(_searchTeamIDs[0], _searchTeamIDs[1]), RequestLoader.Locker_FootballH2HFixtureByTeamId, DateTime.Now.AddHours(12), RedisKeyMaker.FootballH2HFixtureByTeamId(_searchTeamIDs[0], _searchTeamIDs[1]) ); return(fixtures?.Where(elem => elem.MatchTime > DateTime.Now.AddYears(-3) && elem.MatchTime < DateTime.Now) .OrderByDescending(elem => elem.MatchTime)); }
protected void Page_Load(object sender, EventArgs e) { if (IsPostBack) { return; } CreatePlayerListView(); // databind top scorer gv_topScorer.DataSource = Singleton.Get <RedisCacheManager>() .Get <IList <WebFormModel.FootballPlayer> > ( () => RequestLoader.FootballTopScorerByLeagueId(_searchLeagID), RequestLoader.Locker_FootballTopScorerByLeagueId, DateTime.Now.AddDays(1), RedisKeyMaker.FootballTopScorerByLeagueId(_searchLeagID) ); gv_topScorer.DataBind(); }
private void CreatePlayerListByLeague(params int[] searchTeamIDs) { // view1 if (searchTeamIDs.Length > 0) { var homePlayers = Singleton.Get <RedisCacheManager>() .Get <IList <WebFormModel.FootballPlayer> > ( () => RequestLoader.FootballPlayersByTeamIdAndSeason(searchTeamIDs[0], _searchSeason), RequestLoader.Locker_FootballPlayersByTeamIdAndSeason, DateTime.Now.AddDays(1), RedisKeyMaker.FootballPlayersByTeamIdAndSeason(searchTeamIDs[0], _searchSeason) ).GroupBy(elem => elem.League); if (homePlayers?.Count() > 0) { BindPlayerByLeague(ref menu_homeLeagues, ref mview_homePlayers, ref homePlayers); } } //view2 if (searchTeamIDs.Length > 1) { var awayPlayers = Singleton.Get <RedisCacheManager>() .Get <IList <WebFormModel.FootballPlayer> > ( () => RequestLoader.FootballPlayersByTeamIdAndSeason(searchTeamIDs[1], _searchSeason), RequestLoader.Locker_FootballPlayersByTeamIdAndSeason, DateTime.Now.AddDays(1), RedisKeyMaker.FootballPlayersByTeamIdAndSeason(searchTeamIDs[1], _searchSeason) ).GroupBy(elem => elem.League); if (awayPlayers?.Count() > 0) { BindPlayerByLeague(ref menu_awayLeagues, ref mview_awayPlayers, ref awayPlayers); } } }
public IQueryable <dynamic> GetFixtures([RouteData] string countryName) { var fixtures = Singleton.Get <RedisCacheManager>() .Get <IList <WebFormModel.FootballFixture> > ( () => RequestLoader.FootballFixturesByDate(DateTime.Now), RequestLoader.Locker_FootballFixturesByDate, DateTime.Now.AddHours(4), RedisKeyMaker.FootballFixturesByDate(DateTime.Now) ); // step1. 종료된 경기는 필터링 IEnumerable <WebFormModel.FootballFixture> filteredByData; if (string.IsNullOrEmpty(countryName)) { filteredByData = fixtures.Where(elem => elem.MatchTime > DateTime.Now.AddHours(-2)); } else { filteredByData = fixtures.Where(elem => elem.MatchTime > DateTime.Now.AddHours(-2) && elem.League.Country.Equals(countryName)); } // step2. 데이터를 리그, 시작시간으로 그룹화 var group_query = filteredByData.GroupBy(elem => new { League = elem.LeagueId, StartTime = elem.MatchTime }); var result_query = from queryData in group_query select new { League = queryData.FirstOrDefault().League.Name, queryData.Key.StartTime, queryData.FirstOrDefault()?.League.Flag, Fixtures = queryData.ToArray() }; return(result_query.AsQueryable()); }
public void DDLBindData() { List <DDL_NameValue> ddlDataList = new List <DDL_NameValue>(); ddlDataList.Add(new DDL_NameValue { Name = "Filtered by country" }); var fixtures = Singleton.Get <RedisCacheManager>() .Get <IList <WebFormModel.FootballFixture> > ( () => RequestLoader.FootballFixturesByDate(DateTime.Now), RequestLoader.Locker_FootballFixturesByDate, DateTime.Now.AddHours(4), RedisKeyMaker.FootballFixturesByDate(DateTime.Now) ); // 종료된 경기 필터링 var exclusive_finished = fixtures.Where(elem => elem.MatchTime > DateTime.Now.AddHours(-2)); var group_query = exclusive_finished.GroupBy(elem => new { CountryName = elem.League.Country }); var bindData = from queryData in group_query select new DDL_NameValue { Name = queryData.Key.CountryName, Value = queryData.Key.CountryName, }; ddlDataList.AddRange(bindData); ddl_kindCountry.DataTextField = "Name"; ddl_kindCountry.DataValueField = "Value"; ddl_kindCountry.DataSource = ddlDataList; ddl_kindCountry.DataBind(); }
protected void Form_fixture_DataBound(object sender, EventArgs e) { if (form_fixture.Row != null) { var dataItem = this.form_fixture.DataItem as WebFormModel.FootballFixture; // Load data var standings = Singleton.Get <RedisCacheManager>() .Get <IList <WebFormModel.FootballStandings> > ( () => RequestLoader.FootballStandingsByLeagueId(dataItem.LeagueId), RequestLoader.Locker_FootballStandingsByLeagueId, DateTime.Now.AddHours(1), RedisKeyMaker.FootballStandingsByLeagueId(dataItem.LeagueId) ); var homeTeamStatistics = Singleton.Get <RedisCacheManager>() .Get <WebFormModel.FootballTeamStatistics> ( () => RequestLoader.FootballTeamStatisticsByLeagueIDAndTeamId(dataItem.LeagueId, dataItem.HomeTeam.TeamId), RequestLoader.Locker_FootballTeamStatisticsByLeagueIDAndTeamId, DateTime.Now.AddHours(12), RedisKeyMaker.FootballTeamStatisticsByLeagueIdAndTeamId(dataItem.LeagueId, dataItem.HomeTeam.TeamId) ); var awayTeamStatistics = Singleton.Get <RedisCacheManager>() .Get <WebFormModel.FootballTeamStatistics> ( () => RequestLoader.FootballTeamStatisticsByLeagueIDAndTeamId(dataItem.LeagueId, dataItem.AwayTeam.TeamId), RequestLoader.Locker_FootballTeamStatisticsByLeagueIDAndTeamId, DateTime.Now.AddHours(12), RedisKeyMaker.FootballTeamStatisticsByLeagueIdAndTeamId(dataItem.LeagueId, dataItem.AwayTeam.TeamId) ); // page process var homeStandingInfo = standings.Where(elem => elem.TeamId == dataItem.HomeTeam.TeamId).FirstOrDefault(); var awayStandingInfo = standings.Where(elem => elem.TeamId == dataItem.AwayTeam.TeamId).FirstOrDefault(); // 홈 순위, 최근 결과 if (homeStandingInfo != null) { var lbl_homeRank = this.form_fixture.Row.FindControl("lbl_homeRank") as Label; lbl_homeRank.Text = homeStandingInfo.Rank.ToString(); if (homeStandingInfo.Forme != null) { for (int i = 0; i < homeStandingInfo.Forme.Length; i++) { var label = this.form_fixture.Row.FindControl($"home_form_{i}") as Label; label.Text = homeStandingInfo.Forme[homeStandingInfo.Forme.Length - 1 - i].ToString(); if (label.Text.Equals("W")) { label.ForeColor = Color.Green; } else if (label.Text.Equals("L")) { label.ForeColor = Color.Red; } else { label.ForeColor = Color.Orange; } } } var lbl_homePoint = this.form_fixture.Row.FindControl("lbl_homePoint") as Label; lbl_homePoint.Text = homeStandingInfo.Points.ToString(); } // 원정 순위, 최근 결과 if (awayStandingInfo != null) { var lbl_awayRank = this.form_fixture.Row.FindControl("lbl_awyaRank") as Label; lbl_awayRank.Text = awayStandingInfo.Rank.ToString(); if (awayStandingInfo.Forme != null) { for (int i = 0; i < awayStandingInfo.Forme.Length; i++) { var label = this.form_fixture.Row.FindControl($"away_form_{i}") as Label; label.Text = awayStandingInfo.Forme[awayStandingInfo.Forme.Length - 1 - i].ToString(); if (label.Text.Equals("W")) { label.ForeColor = Color.Green; } else if (label.Text.Equals("L")) { label.ForeColor = Color.Red; } else { label.ForeColor = Color.Orange; } } } var lbl_awayPoint = this.form_fixture.Row.FindControl("lbl_awayPoint") as Label; lbl_awayPoint.Text = awayStandingInfo.Points.ToString(); } // 전적 var lbl_homeTotalRecord = this.form_fixture.Row.FindControl("lbl_homeTotalRecord") as Label; lbl_homeTotalRecord.Text = $"{homeTeamStatistics.Matchs.Wins.Total}/{homeTeamStatistics.Matchs.Draws.Total}/{homeTeamStatistics.Matchs.Loses.Total} " + $"({homeTeamStatistics.Matchs.Wins.Home}/{homeTeamStatistics.Matchs.Draws.Home}/{homeTeamStatistics.Matchs.Loses.Home})"; var lbl_awayTotalRecord = this.form_fixture.Row.FindControl("lbl_awayTotalRecord") as Label; lbl_awayTotalRecord.Text = $"({awayTeamStatistics.Matchs.Wins.Away}/{awayTeamStatistics.Matchs.Draws.Away}/{awayTeamStatistics.Matchs.Loses.Away}) " + $"{awayTeamStatistics.Matchs.Wins.Total}/{awayTeamStatistics.Matchs.Draws.Total}/{awayTeamStatistics.Matchs.Loses.Total}"; // 평균 득점 var lbl_homeGoalsAvg = this.form_fixture.Row.FindControl("lbl_homeGoalsAvg") as Label; lbl_homeGoalsAvg.Text = $"{homeTeamStatistics.GoalsAvg.GoalsFor.Total} ({homeTeamStatistics.GoalsAvg.GoalsFor.Home})"; var lbl_awayGoalsAvg = this.form_fixture.Row.FindControl("lbl_awayGoalsAvg") as Label; lbl_awayGoalsAvg.Text = $"({awayTeamStatistics.GoalsAvg.GoalsFor.Away}) {awayTeamStatistics.GoalsAvg.GoalsFor.Total}"; // 평균 실점 var lbl_homeGoalAgainst = this.form_fixture.Row.FindControl("lbl_homeGoalAgainst") as Label; lbl_homeGoalAgainst.Text = $"{homeTeamStatistics.GoalsAvg.GoalsAgainst.Total} ({homeTeamStatistics.GoalsAvg.GoalsAgainst.Home})"; var lbl_awayGoalAgainst = this.form_fixture.Row.FindControl("lbl_awayGoalAgainst") as Label; lbl_awayGoalAgainst.Text = $"({awayTeamStatistics.GoalsAvg.GoalsAgainst.Away}) {awayTeamStatistics.GoalsAvg.GoalsAgainst.Total}"; // 최근 6경기 득실점 var lbl_homeLastSixPoints = this.form_fixture.Row.FindControl("lbl_homeLastSixPoints") as Label; lbl_homeLastSixPoints.Text = dataItem.HomeLateSixGoalPoints; var lbl_awayLastSixPoints = this.form_fixture.Row.FindControl("lbl_awayLastSixPoints") as Label; lbl_awayLastSixPoints.Text = dataItem.AwayLateSixGoalPoints; // 홈/원정 각 3경기 득실점 var lbl_homeLastThreePoints = this.form_fixture.Row.FindControl("lbl_homeLastThreePoints") as Label; lbl_homeLastThreePoints.Text = dataItem.HomeLateThreeGoalPoints; var lbl_awayLastThreePoints = this.form_fixture.Row.FindControl("lbl_awayLastThreePoints") as Label; lbl_awayLastThreePoints.Text = dataItem.AwayLateThreeGoalPoints; // 회복기간 var lbl_homeRecoveryDays = this.form_fixture.Row.FindControl("lbl_homeRecoveryDays") as Label; lbl_homeRecoveryDays.Text = dataItem.HomeRecoveryDays; var lbl_awayRecoveryDays = this.form_fixture.Row.FindControl("lbl_awayRecoveryDays") as Label; lbl_awayRecoveryDays.Text = dataItem.AwayRecoveryDays; } }
protected void GV_FootballFixtures_RowDataBound(object sender, GridViewRowEventArgs e) { if (e.Row.RowType == DataControlRowType.DataRow) { var dataItem = e.Row.DataItem as WebFormModel.FootballFixture; var chk_interestedFixture = e.Row.FindControl("chk_interestedFixture") as CheckBox; var homeHyperLink = e.Row.FindControl("hl_homeTeamLink") as HyperLink; var awayHyperLink = e.Row.FindControl("hl_awayTeamLink") as HyperLink; homeHyperLink.NavigateUrl = GetRouteUrl("FootballTeamById", new { TeamId = dataItem.AwayTeam.TeamId }); awayHyperLink.NavigateUrl = GetRouteUrl("FootballTeamById", new { TeamId = dataItem.AwayTeam.TeamId }); if (dataItem != null) { // 관심경기 선택 여부 // 관심 경기 데이터 가져오기 var interestedFixtures = Singleton.Get <RedisCacheManager>() .GetNullable <IList <WebFormModel.FootballFixture> > ( RedisKeyMaker.FootballInterestedFixture() ); bool isInterestedFixture = interestedFixtures?.Where(elem => elem.FixtureId == dataItem.FixtureId).FirstOrDefault() != null; chk_interestedFixture.Checked = isInterestedFixture; // 리그 5위 이상 팀 Bold체 var leaugeStandings = Singleton.Get <RedisCacheManager>() .Get <IList <WebFormModel.FootballStandings> > ( () => RequestLoader.FootballStandingsByLeagueId(dataItem.LeagueId), RequestLoader.Locker_FootballStandingsByLeagueId, DateTime.Now.AddHours(4), RedisKeyMaker.FootballStandingsByLeagueId(dataItem.LeagueId) ); var homeStandingInfo = leaugeStandings.Where(elem => elem.TeamId == dataItem.HomeTeam.TeamId).FirstOrDefault(); var awayStandingInfo = leaugeStandings.Where(elem => elem.TeamId == dataItem.AwayTeam.TeamId).FirstOrDefault(); if (homeStandingInfo?.Rank <= 5) { homeHyperLink.Font.Bold = true; } if (awayStandingInfo?.Rank <= 5) { awayHyperLink.Font.Bold = true; } // 팀 통계에 따른 폰트 색상 //var homeTeamStatistics = Singleton.Get<RedisCacheManager>() //.Get<WebFormModel.FootballTeamStatistics> //( // () => RequestLoader.FootballTeamStatisticsByLeagueIDAndTeamID(dataItem.LeagueID, dataItem.HomeTeam.TeamID), // RequestLoader.Locker_FootballTeamStatisticsByLeagueIDAndTeamID, // DateTime.Now.AddHours(12), // RedisKeyMaker.FootballTeamStatisticsByLeagueIDAndTeamID(dataItem.LeagueID, dataItem.HomeTeam.TeamID) //); //var awayTeamStatistics = Singleton.Get<RedisCacheManager>() //.Get<WebFormModel.FootballTeamStatistics> //( // () => RequestLoader.FootballTeamStatisticsByLeagueIDAndTeamID(dataItem.LeagueID, dataItem.AwayTeam.TeamID), // RequestLoader.Locker_FootballTeamStatisticsByLeagueIDAndTeamID, // DateTime.Now.AddHours(12), // RedisKeyMaker.FootballTeamStatisticsByLeagueIDAndTeamID(dataItem.LeagueID, dataItem.AwayTeam.TeamID) //); //CheckTeamStaticAndApplyColor(homeTeamStatistics, homeHyperLink); //CheckTeamStaticAndApplyColor(awayTeamStatistics, awayHyperLink); // 팀 최근 6경기 득실점에 따른 폰트 색상 //var homefixtures = Singleton.Get<RedisCacheManager>() // .Get<IList<WebFormModel.FootballFixture>> // ( // () => RequestLoader.FootballFixtureByTeamID(dataItem.HomeTeam.TeamID), // RequestLoader.Locker_FootballFixtureByTeamID, // DateTime.Now.AddHours(12), // RedisKeyMaker.FootballFixtureByTeamID(dataItem.HomeTeam.TeamID) // ).Where(elem => elem.EventDate < DateTime.Now) // .OrderByDescending(elem => elem.EventDate); //// 홈팀 최근 6경기 득실점 //int fixtureCnt = 0; //int goalCnt = 0; //int goalAgainst = 0; //foreach (var selectedfixture in homefixtures) //{ // if (string.IsNullOrEmpty(selectedfixture.Score.FullTime) // || selectedfixture.LeagueID != dataItem.LeagueID) // continue; // // 최근 5경기만.. // if (fixtureCnt >= 6) // break; // bool isHomeTeam = selectedfixture.HomeTeam.TeamID == dataItem.HomeTeam.TeamID; // string[] scoreSplit = selectedfixture.Score.FullTime.Split('-'); // goalCnt += int.Parse(scoreSplit[isHomeTeam ? 0 : 1]); // goalAgainst += int.Parse(scoreSplit[isHomeTeam ? 1 : 0]); // fixtureCnt++; //} //CheckTeamGoalAgainstAndApplyColor(goalCnt, goalAgainst, homeHyperLink); //var awayfixtures = Singleton.Get<RedisCacheManager>() // .Get<IList<WebFormModel.FootballFixture>> // ( // () => RequestLoader.FootballFixtureByTeamID(dataItem.AwayTeam.TeamID), // RequestLoader.Locker_FootballFixtureByTeamID, // DateTime.Now.AddHours(12), // RedisKeyMaker.FootballFixtureByTeamID(dataItem.AwayTeam.TeamID) // ).Where(elem => elem.EventDate < DateTime.Now) // .OrderByDescending(elem => elem.EventDate); //// 어웨이팀 최근 6경기 득실점 //fixtureCnt = 0; //goalCnt = 0; //goalAgainst = 0; //foreach (var selectedfixture in awayfixtures) //{ // if (string.IsNullOrEmpty(selectedfixture.Score.FullTime) // || selectedfixture.LeagueID != dataItem.LeagueID) // continue; // // 최근 6경기만.. // if (fixtureCnt >= 6) // break; // bool isHomeTeam = selectedfixture.HomeTeam.TeamID == dataItem.AwayTeam.TeamID; // string[] scoreSplit = selectedfixture.Score.FullTime.Split('-'); // goalCnt += int.Parse(scoreSplit[isHomeTeam ? 0 : 1]); // goalAgainst += int.Parse(scoreSplit[isHomeTeam ? 1 : 0]); // fixtureCnt++; //} //CheckTeamGoalAgainstAndApplyColor(goalCnt, goalAgainst, awayHyperLink); //경기 예측(단폴픽 체크) var prediction = Singleton.Get <RedisCacheManager>() .Get <IList <WebFormModel.FootballPrediction> > ( () => RequestLoader.FootballPredictionByFixtureId(dataItem.FixtureId), RequestLoader.Locker_FootballPredictionByFixtureId, DateTime.Now.AddDays(1), RedisKeyMaker.FootballPredictionByFixtureId(dataItem.FixtureId) ).FirstOrDefault(); if (prediction?.MatchWinner?.Trim(' ').Length == 1) { e.Row.BackColor = Color.LightGreen; } } } }
/// <summary> /// 관심 경기 체크 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void chk_fixture_InterestedIndexChanged(Object sender, EventArgs e) { CheckBox chkbox = sender as CheckBox; if (chkbox == null) { return; } // 관심경기에 추가하는 경우 if (chkbox.Checked) { // 모든 경기 가져오기 var fixtures = Singleton.Get <RedisCacheManager>() .Get <IList <WebFormModel.FootballFixture> > ( () => RequestLoader.FootballFixturesByDate(DateTime.Now), RequestLoader.Locker_FootballFixturesByDate, DateTime.Now.AddHours(4), RedisKeyMaker.FootballFixturesByDate(DateTime.Now) ); // 관심 경기 검색 int interestedFixtureID = int.Parse(chkbox.ToolTip); var interestedFixture = fixtures.Where(elem => elem.FixtureId == interestedFixtureID).FirstOrDefault(); if (interestedFixture == null) { return; } // 관심 경기 데이터 가져오기 var interestedFixtures = Singleton.Get <RedisCacheManager>() .GetNullable <IList <WebFormModel.FootballFixture> > ( RedisKeyMaker.FootballInterestedFixture() ); if (interestedFixtures == null) { interestedFixtures = new List <WebFormModel.FootballFixture>(); } // 관심 경기에 추가 interestedFixtures.Add(interestedFixture); // 레디스에 저장 Singleton.Get <RedisCacheManager>().Set ( JsonConvert.SerializeObject(interestedFixtures), RequestLoader.Locker_FootballInterestedFixture, new DateTime(9999, 12, 31), RedisKeyMaker.FootballInterestedFixture() ); } else // 관심경기에서 제거하는 경우 { // 관심 경기 데이터 가져오기 var interestedFixtures = Singleton.Get <RedisCacheManager>() .GetNullable <IList <WebFormModel.FootballFixture> > ( RedisKeyMaker.FootballInterestedFixture() ); // 제거할 경기 int interestedFixtureID = int.Parse(chkbox.ToolTip); var interestedFixture = interestedFixtures.Where(elem => elem.FixtureId == interestedFixtureID).FirstOrDefault(); if (interestedFixture == null) { return; // 이미 제거된 경기 } // 관심 경기에서 제거 interestedFixtures.Remove(interestedFixture); // 레디스에 저장 Singleton.Get <RedisCacheManager>().Set ( JsonConvert.SerializeObject(interestedFixtures), RequestLoader.Locker_FootballInterestedFixture, new DateTime(9999, 12, 31), RedisKeyMaker.FootballInterestedFixture() ); } }
private void BindData(params int[] searchTeamIDs) { // view1 if (searchTeamIDs.Length > 0) { var homefixtures = Singleton.Get <RedisCacheManager>() .Get <IList <WebFormModel.FootballFixture> > ( () => RequestLoader.FootballFixtureByTeamId(_searchTeamIDs[0]), RequestLoader.Locker_FootballFixtureByTeamId, DateTime.Now.AddHours(12), RedisKeyMaker.FootballFixtureByTeamId(_searchTeamIDs[0]) ); // 지난 경기 var homeLateFixtures = homefixtures.Where(elem => elem.MatchTime < DateTime.Now) .OrderByDescending(elem => elem.MatchTime) .Take(20); if (homeLateFixtures?.Count() > 0) { gv_homeLateFixtures.DataSource = homeLateFixtures; gv_homeLateFixtures.DataBind(); } // 예정된 경기 var homeReserveFixtures = homefixtures.Where(elem => elem.MatchTime > DateTime.Now) .Take(10); if (homeReserveFixtures?.Count() > 0) { gv_homeReserveFixtures.DataSource = homeReserveFixtures; gv_homeReserveFixtures.DataBind(); } } //view2 if (searchTeamIDs.Length > 1) { var awayfixtures = Singleton.Get <RedisCacheManager>() .Get <IList <WebFormModel.FootballFixture> > ( () => RequestLoader.FootballFixtureByTeamId(_searchTeamIDs[1]), RequestLoader.Locker_FootballFixtureByTeamId, DateTime.Now.AddHours(12), RedisKeyMaker.FootballFixtureByTeamId(_searchTeamIDs[1]) ); // 지난 경기 var awayLateFixtures = awayfixtures.Where(elem => elem.MatchTime < DateTime.Now) .OrderByDescending(elem => elem.MatchTime) .Take(20); if (awayLateFixtures?.Count() > 0) { gv_awayLateFixtures.DataSource = awayLateFixtures; gv_awayLateFixtures.DataBind(); } // 예정된 경기 var awayReserveFixtures = awayfixtures.Where(elem => elem.MatchTime > DateTime.Now) .Take(10); if (awayReserveFixtures?.Count() > 0) { gv_awayReserveFixtures.DataSource = awayReserveFixtures; gv_awayReserveFixtures.DataBind(); } } }
public WebFormModel.FootballFixture GetFootballFixture([RouteData] int fixtureId) { var fixture = Singleton.Get <RedisCacheManager>() .Get <WebFormModel.FootballFixture> ( () => RequestLoader.FootballFixtureById(fixtureId), RequestLoader.Locker_FootballFixtureById, DateTime.Now.AddHours(1), RedisKeyMaker.FootballFixtureById(fixtureId) ); var homefixtures = Singleton.Get <RedisCacheManager>() .Get <IList <WebFormModel.FootballFixture> > ( () => RequestLoader.FootballFixtureByTeamId(fixture.HomeTeam.TeamId), RequestLoader.Locker_FootballFixtureByTeamId, DateTime.Now.AddHours(12), RedisKeyMaker.FootballFixtureByTeamId(fixture.HomeTeam.TeamId) ).Where(elem => elem.MatchTime < DateTime.Now) .OrderByDescending(elem => elem.MatchTime); var awayfixtures = Singleton.Get <RedisCacheManager>() .Get <IList <WebFormModel.FootballFixture> > ( () => RequestLoader.FootballFixtureByTeamId(fixture.AwayTeam.TeamId), RequestLoader.Locker_FootballFixtureByTeamId, DateTime.Now.AddHours(12), RedisKeyMaker.FootballFixtureByTeamId(fixture.AwayTeam.TeamId) ).Where(elem => elem.MatchTime < DateTime.Now) .OrderByDescending(elem => elem.MatchTime); // 홈팀 최근 6경기 득실점 int fixtureCnt = 0; int goalCnt = 0; int goalAgainst = 0; foreach (var selectedfixture in homefixtures) { if (string.IsNullOrEmpty(selectedfixture.Score.FullTime) || selectedfixture.LeagueId != fixture.LeagueId) { continue; } // 최근 5경기만.. if (fixtureCnt >= 6) { break; } bool isHomeTeam = selectedfixture.HomeTeam.TeamId == fixture.HomeTeam.TeamId; string[] scoreSplit = selectedfixture.Score.FullTime.Split('-'); goalCnt += int.Parse(scoreSplit[isHomeTeam ? 0 : 1]); goalAgainst += int.Parse(scoreSplit[isHomeTeam ? 1 : 0]); fixtureCnt++; } fixture.HomeLateSixGoalPoints = $"{goalCnt} : {goalAgainst}"; // 홈팀 최근 홈3경기 득실점 fixtureCnt = 0; goalCnt = 0; goalAgainst = 0; foreach (var selectedfixture in homefixtures) { bool isHomeTeam = selectedfixture.HomeTeam.TeamId == fixture.HomeTeam.TeamId; if (string.IsNullOrEmpty(selectedfixture.Score.FullTime) || selectedfixture.LeagueId != fixture.LeagueId || !isHomeTeam) { continue; } // 최근 3경기만.. if (fixtureCnt >= 3) { break; } string[] scoreSplit = selectedfixture.Score.FullTime.Split('-'); goalCnt += int.Parse(scoreSplit[0]); goalAgainst += int.Parse(scoreSplit[1]); fixtureCnt++; } fixture.HomeLateThreeGoalPoints = $"{goalCnt} : {goalAgainst}"; // 어웨이팀 최근 6경기 득실점 fixtureCnt = 0; goalCnt = 0; goalAgainst = 0; foreach (var selectedfixture in awayfixtures) { if (string.IsNullOrEmpty(selectedfixture.Score.FullTime) || selectedfixture.LeagueId != fixture.LeagueId) { continue; } // 최근 6경기만.. if (fixtureCnt >= 6) { break; } bool isHomeTeam = selectedfixture.HomeTeam.TeamId == fixture.AwayTeam.TeamId; string[] scoreSplit = selectedfixture.Score.FullTime.Split('-'); goalCnt += int.Parse(scoreSplit[isHomeTeam ? 0 : 1]); goalAgainst += int.Parse(scoreSplit[isHomeTeam ? 1 : 0]); fixtureCnt++; } fixture.AwayLateSixGoalPoints = $"{goalCnt} : {goalAgainst}"; // 어웨이팀 최근 어웨이3경기 득실점 fixtureCnt = 0; goalCnt = 0; goalAgainst = 0; foreach (var selectedfixture in awayfixtures) { bool isAwayTeam = selectedfixture.AwayTeam.TeamId == fixture.AwayTeam.TeamId; if (string.IsNullOrEmpty(selectedfixture.Score.FullTime) || selectedfixture.LeagueId != fixture.LeagueId || !isAwayTeam) { continue; } // 최근 3경기만.. if (fixtureCnt >= 3) { break; } string[] scoreSplit = selectedfixture.Score.FullTime.Split('-'); goalCnt += int.Parse(scoreSplit[1]); goalAgainst += int.Parse(scoreSplit[0]); fixtureCnt++; } fixture.AwayLateThreeGoalPoints = $"{goalCnt} : {goalAgainst}"; // 홈팀 회복기간 var homeLastFixtures = homefixtures.FirstOrDefault(); if (homeLastFixtures != null) { fixture.HomeRecoveryDays = $"{(fixture.MatchTime - homeLastFixtures.MatchTime).Days}일"; } // 원정팀 회복기간 var awayLastFixtures = awayfixtures.FirstOrDefault(); if (awayLastFixtures != null) { fixture.AwayRecoveryDays = $"{(fixture.MatchTime - awayLastFixtures.MatchTime).Days}일"; } return(fixture); }