public ActionResult UpdateCalendar(string startDateRange, string endDateRange) { DateTime startDate = DateTime.Parse(startDateRange); DateTime endDate = DateTime.Parse(endDateRange); List <Sprint> sprints = _SprintService.GetSprintsWithinDateRange( SessionHelper.GetCurrentProductId(User.Identity.Name, Session), startDate, endDate); List <Release> releases = _ReleaseService.GetReleasesWithinDateRange( SessionHelper.GetCurrentProductId(User.Identity.Name, Session), startDate, endDate); JsonSchedule jsonSchedule = new JsonSchedule(releases, sprints, startDate, endDate); return(new SecureJsonResult(jsonSchedule)); }
public async Task <IActionResult> Get(DateTime?startDate, DateTime?endDate, int?utcOffset) { using (var client = new HttpClient()) { try { if (utcOffset.HasValue) { Globals.SetUtcOffset(utcOffset.Value); } if (!endDate.HasValue && !startDate.HasValue) { (startDate, endDate) = DateUtil.ScheduleStandard; } if (!endDate.HasValue) { endDate = DateUtil.ScheduleStandard.EndDate; } if (!startDate.HasValue) { startDate = DateUtil.ScheduleStandard.StartDate; } var url = $"{Constants.ApiLinks.Base}{Constants.ApiLinks.ScheduleLinescore}startDate=" + $"{startDate.Value.AddDays(-1).ToShortDateString()}&endDate={endDate.Value.AddDays(1).ToShortDateString()}"; var response = await client.GetAsync(url); response.EnsureSuccessStatusCode(); var jsonSchedule = JsonSchedule.Get(await response.Content.ReadAsStringAsync(), startDate.Value, endDate.Value); return(Ok(_mapper.Map <IEnumerable <DTOSchedule> >(jsonSchedule))); } catch (Exception e) { return(BadRequest(e.Message)); } } }
public IEnumerable <DTOSchedule> Convert(JsonSchedule source, IEnumerable <DTOSchedule> destination, ResolutionContext context) { List <DTOSchedule> schedules = new List <DTOSchedule>(); var teams = (source.dates.Select(d => d.games). SelectMany(g => g). Select(g => (g.teams.away.team.id, g.teams.away.team.name))).Union (source.dates.Select(d => d.games). SelectMany(g => g). Select(g => (g.teams.home.team.id, g.teams.home.team.name))).Distinct(); foreach (var t in teams) { var matches = source.dates.Select(d => d.games). SelectMany(g => g). Where(g => g.teams.home.team.id == t.Item1 || g.teams.away.team.id == t.Item1); schedules.Add(new DTOSchedule() { LogoLink = LinkBuilder.GetLogoLink(t.Item1), AmountOfGames = matches.Count(), Team = t.Item2, Id = t.Item1, Opponents = matches.Select(m => new DTOSchedule.Opponent() { GameDate = m.gameDate, Away = m.teams.away.team.id == t.Item1, LogoLink = m.teams.away.team.id != t.Item1 ? LinkBuilder.GetLogoLink(m.teams.away.team.id) : LinkBuilder.GetLogoLink(m.teams.home.team.id), Status = m.status.statusCode } ) }); } return(schedules); }
///'''''''''''''''''''''''''''''''''''''''''''''''' /// <summary> /// DB取得データを設定 /// </summary> ///,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, public Schedule(JsonSchedule doc) { // 開始時間の午前午後判定処理 Func <string> isAMPM = () => { DateTime d = DateTime.Parse(FromTime); // 午前午後を判定する return((d.Hour < Const.Noon) ? Const.AM : Const.PM); }; // プロパティ設定 Id = doc._Id; // ID Rev = doc._Rev; // rev FromDate = doc.FromDate; // 開始日 FromTime = doc.FromTime; // 開始時間 ToDate = doc.ToDate; // 終了日 ToTime = doc.ToTime; // 終了時間 Title = doc.Title; // タイトル Remarks = doc.Remarks; // 内容 AmPm = isAMPM(); // 開始時間の午前午後 }