public SeasonDataDTO MapToSeasonDataDTO(SeasonEntity source, SeasonDataDTO target = null) { if (source == null) { return(null); } if (target == null) { target = new SeasonDataDTO(); } MapToSeasonInfoDTO(source, target); target.CreatedByUserId = source.CreatedByUserId; target.LastModifiedByUserId = source.LastModifiedByUserId; target.Finished = source.Finished; target.Results = source.Results?.Select(x => MapToResultInfoDTO(x)).ToArray(); target.Reviews = source.Results?.Select(x => x.Reviews?.Select(y => MapToReviewInfoDTO(y))).Aggregate((x, y) => x.Concat(y)).ToArray(); target.Schedules = source.Schedules?.Select(x => MapToScheduleInfoDTO(x)).ToArray(); target.Scorings = source.Scorings?.Select(x => MapToScoringDataDTO(x)).ToArray(); target.ScoringTables = source.ScoringTables?.Select(x => MapToScoringTableDataDTO(x)).ToArray(); target.SeasonEnd = source.SeasonEnd.GetValueOrDefault(); target.SeasonId = source.SeasonId; target.SeasonName = source.SeasonName; target.SeasonStart = source.SeasonStart.GetValueOrDefault(); target.Version = source.Version; target.VoteCategories = LeagueDbContext.CustomVoteCategories.AsEnumerable().Select(x => MapToVoteCategoryDTO(x)).ToArray(); target.CustomIncidents = LeagueDbContext.CustomIncidentKinds.AsEnumerable().Select(x => MapToCustomIncidentDTO(x)).ToArray(); target.HideCommentsBeforeVoted = source.HideCommentsBeforeVoted; target.SeasonStatisticSetIds = source.SeasonStatistics.Select(x => x.Id).ToArray(); return(target); }
public SeasonDataDTO MapToSeasonDataDTO(SeasonEntity source, SeasonDataDTO target = null) { if (source == null) { return(null); } if (target == null) { target = new SeasonDataDTO(); } MapToSeasonInfoDTO(source, target); target.CreatedByUserId = source.CreatedByUserId; target.LastModifiedByUserId = source.LastModifiedByUserId; target.Results = source.Results?.Select(x => MapToResultInfoDTO(x)).ToList(); target.Reviews = source.Results?.Select(x => x.Reviews?.Select(y => MapToReviewInfoDTO(y))).Aggregate((x, y) => x.Concat(y)); target.Schedules = source.Schedules?.Select(x => MapToScheduleInfoDTO(x)).ToList(); target.Scorings = source.Scorings?.Select(x => MapToScoringDataDTO(x)).ToList(); target.ScoringTables = source.ScoringTables?.Select(x => MapToScoringTableDataDTO(x)).ToList(); target.SeasonEnd = source.SeasonEnd.GetValueOrDefault(); target.SeasonId = source.SeasonId; target.SeasonName = source.SeasonName; target.SeasonStart = source.SeasonStart.GetValueOrDefault(); target.Version = source.Version; return(target); }
public static int GetWeekOffset(SeasonEntity seasonEntity, DateTime dateTimeUtc) { var weekOffset = -1; var beginWeekNumber = seasonEntity.BeginDateTimeUtc.GetIsoWeekOfYear(); var weekNumber = dateTimeUtc.GetIsoWeekOfYear(); var year = dateTimeUtc.Year; if (year == seasonEntity.BeginDateTimeUtc.Year) { weekOffset = (weekNumber - beginWeekNumber); } // ASSUMPTION: End Date Time UTC = Begin Date Time UTC + 1. else if (year == seasonEntity.EndDateTimeUtc.Year) { weekOffset = (52 - beginWeekNumber) + weekNumber; } else { throw new Exception($"The specified Date ({dateTimeUtc:yyyy-MMM-dd}) does not fall within the specified Fantasy Football Season (Season Id = {seasonEntity.SeasonId})."); } return(weekOffset); }
public SeasonInfoDTO MapToSeasonInfoDTO(SeasonEntity source, SeasonInfoDTO target = null) { if (source == null) { return(null); } if (target == null) { target = new SeasonInfoDTO(); } MapToVersionInfoDTO(source, target); target.SeasonId = source.SeasonId; target.SeasonName = source.SeasonName; return(target); }
public SeasonEntity MapToSeasonEntity(SeasonInfoDTO source, SeasonEntity target = null) { if (source == null) { return(null); } if (target == null) { GetSeasonEntity(source); } if (!MapToRevision(source, target)) { return(target); } target.SeasonName = source.SeasonName; return(target); }
public SeasonEntity MapToSeasonEntity(SeasonDataDTO source, SeasonEntity target = null) { if (source == null) { return(null); } if (target == null) { GetSeasonEntity(source); } if (!MapToRevision(source, target)) { return(target); } target.SeasonName = source.SeasonName; target.Finished = source.Finished; target.CreatedByUserId = source.CreatedByUserId; target.LastModifiedByUserId = source.LastModifiedByUserId; if (target.Schedules == null) { target.Schedules = new List <Entities.Sessions.ScheduleEntity>(); } MapCollection(source.Schedules, target.Schedules, GetScheduleEntity, x => x.MappingId, autoAddMissing: true); if (target.Scorings == null) { target.Scorings = new List <Entities.Results.ScoringEntity>(); } MapCollection(source.Scorings, target.Scorings, MapToScoringEntity, x => x.ScoringId, autoAddMissing: true); if (target.ScoringTables == null) { target.ScoringTables = new List <Entities.Results.ScoringTableEntity>(); } MapCollection(source.ScoringTables, target.ScoringTables, MapToScoringTableEntity, x => x.ScoringTableId, autoAddMissing: true); target.SeasonName = source.SeasonName; target.Version = source.Version; target.HideCommentsBeforeVoted = source.HideCommentsBeforeVoted; return(target); }
private void ProcessTeamIdsTxt(BRBaseParam param, string txt) { var xml = new XmlHelper(txt); var cdataFlag = "//c"; var cdata = xml.GetValues(cdataFlag); // 获取赛季名称 var title = xml.GetAttributeValue("//page", "title"); var seasonName = title.Split('>').Last(); SeasonEntity currentSeasonEntity = new SeasonEntity(); currentSeasonEntity.SportId = param.SportId; currentSeasonEntity.SeasonId = param.SeasonId; currentSeasonEntity.SeasonName = seasonName; var se = SeasonEntityManager.AddOrGetCacheEntity <SeasonEntity>(param.SeasonId); se.CompareSetSeasonInfo(currentSeasonEntity); // 获取赛季teamIds var root = GetHtmlRoot(cdata[1]); var ul = root.SelectSingleNode("//ul[@class='slickselect']"); if (ul == null || ul.ChildNodes == null) { return; } List <string> teamIdList = new List <string>(); foreach (var li in ul.ChildNodes) { var teamId = RegexGetStr(li.OuterHtml, "teamid','", "',"); teamIdList.Add(teamId); } var dic = se.CompareSetTeamIdList(teamIdList); TeamAssignTask(param, dic); }
public IActionResult OnPost(string action) { IsGet = false; if (action == "Create") { // TODO: Check that the new Season does not Exist Already nor is it Active. var seasonEntity = new SeasonEntity() { Description = Description, BeginDateTimeUtc = BeginDateTimeUtc.Date, EndDateTimeUtc = EndDateTimeUtc.Date.AddDays(1).AddMilliseconds(-1), CreatedDateTimeUtc = DateTime.UtcNow }; SeasonsRepository.Create(seasonEntity); SeasonsRepository.SaveChanges(); } return(RedirectToPage("/web/Index")); }
public void OnGet(int seasonId) { SeasonId = seasonId; Season = SeasonsRepository.Get(seasonId); }
public void Process(ITakerReptile.Dto.BaseData data) { BRData bd = data as BRData; SeasonParam param = bd.Param as SeasonParam; CheckSetHistoryParam(param); string txt; if (!HtmlDecode(bd.Html, out txt)) { return; } // 首先添加联赛层级的比赛任务 MatchParam mp = param.CopyCreateParam <MatchParam>(); LeagueManager.AddOrUpdateParam(mp); if (param.CurrentUrlKey == "tableIds") { ProcessTableIdsTxt(param, txt); return; } else if (param.CurrentUrlKey == "teamIds") { ProcessTeamIdsTxt(param, txt); return; } var xml = new XmlHelper(txt); // 获取赛季名称 var title = xml.GetAttributeValue("//page", "title"); var seasonName = title.Split('>').Last(); SeasonEntity currentSeasonEntity = new SeasonEntity(); currentSeasonEntity.SportId = param.SportId; currentSeasonEntity.SeasonId = param.SeasonId; currentSeasonEntity.SeasonName = seasonName; // 获取积分数据块 var cdataFlag = "//c"; var cdata = xml.GetValues(cdataFlag); if (cdata.Count == 0) { // 杯赛没有积分数据的,添加获取所有队伍Id的任务 param = param.CopyCreateParam <SeasonParam>(); param.SetCurrentUrlKey("teamIds"); LeagueManager.AddOrUpdateParam(param); return; } var teamRankData = ""; if (cdata.Count > 5) { teamRankData = cdata[4]; } if (string.IsNullOrEmpty(teamRankData)) { return; } var currentRound = RegexGetStr(cdata[0], "sb-current\"><div class=\"label\">", "<"); currentSeasonEntity.CurrentRound = currentRound; SeasonEntity se = SeasonEntityManager.AddOrGetCacheEntity <SeasonEntity>(param.SeasonId); se.CompareSetSeasonInfo(currentSeasonEntity); // 解析积分数据,并添加队伍任务,添加队伍积分数据,其他数据可由已经结束的比赛结果计算 List <string> teamIdList = new List <string>(); List <SeasonTeamRank> trList = new List <SeasonTeamRank>(); var root = GetHtmlRoot(teamRankData); var tables = root.SelectNodes("//table[@class='normaltable']/tbody"); if (tables.Count == 0) { return; } if (tables.Count > 1) { // 多个积分榜数据,有分组别的,添加获取所有组别Id的任务 param = param.CopyCreateParam <SeasonParam>(); param.SetCurrentUrlKey("tableIds"); LeagueManager.AddOrUpdateParam(param); // 同时添加获取全部队伍Id的任务 param = param.CopyCreateParam <SeasonParam>(); param.SetCurrentUrlKey("teamIds"); LeagueManager.AddOrUpdateParam(param); return; } foreach (var node in tables[0].ChildNodes) { var teamId = RegexGetStr(node.ChildNodes[2].InnerHtml, "teamid','", "',"); teamIdList.Add(teamId); var trDataArr = node.ChildNodes.Select(o => o.InnerText).ToArray(); SeasonTeamRank tr = new SeasonTeamRank() { SeasonId = param.SeasonId, TeamId = teamId, TeamPoints = trDataArr[11], Description = trDataArr[12] }; trList.Add(tr); } SeasonTeams st = SeasonTeamsManager.AddOrGetCacheEntity <SeasonTeams>(param.SeasonId); st.CompareSetTeamRank(trList); // 要分配的队伍任务 var teamTaskDic = se.CompareSetTeamIdList(teamIdList); TeamAssignTask(param, teamTaskDic); }