Exemple #1
0
        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));
        }
Exemple #2
0
        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));
                }
            }
        }
Exemple #3
0
        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();          // 開始時間の午前午後
        }