private static AlexaResponse GetNextEpisode(string name, string status, ITvEpisode episode) { var cardTitle = $"Next episode of {name}"; if (status == "Ended") { if (!episode.OriginalAirDate.HasValue) { return(new AlexaResponse($"{name} has ended.", cardTitle)); } return(new AlexaResponse($"{name} ended on <say-as interpret-as='date'>{episode.OriginalAirDate.Value:yyyyMMdd}</say-as>.", cardTitle, $"{name} ended on {episode.OriginalAirDate.Value:dd MMM yyyy}.")); } if (episode?.OriginalAirDate == null) { return(new AlexaResponse($"Sorry, the air date for the next episode of {name} hasn't been released yet.", cardTitle)); } var episodeName = episode.Name == "TBA" || episode.Name == $"Episode #{episode.Season}.{episode.Number}" ? "" : $", called {episode.Name},"; var airTime = episode.OriginalAirDate.Value.ToString("HHmm") != "0000" ? episode.OriginalAirDate.Value.ToString("HH:mm") : ""; var airTimeSpeechOutput = !string.IsNullOrEmpty(airTime) ? $" at <say-as interpret-as='time'>{airTime}</say-as>" : ""; var airTimeTextOutput = !string.IsNullOrEmpty(airTime) ? $" at {airTime}" : ""; return(new AlexaResponse( $"Season {episode.Season} episode {episode.Number} of {name}{episodeName} airs on <say-as interpret-as='date'>{episode.OriginalAirDate.Value:yyyyMMdd}</say-as>{airTimeSpeechOutput}.", cardTitle, $"Season {episode.Season} - Episode {episode.Number}\n{episodeName}\nAirs {episode.OriginalAirDate.Value:dd MMM yyyy}{airTimeTextOutput}.")); }
public async Task <ITvEpisode[]> GetTVShowEpisodeDetailsIn(string id, string language, params SeasonEpisodeNumber[] seasonEpisodeNumbers) { if (seasonEpisodeNumbers == null) { return new ITvEpisode[] { } } ; List <ITvEpisode> episodes = new List <ITvEpisode>(); string url = $"http://my.scraper.url/searchEpisodes?id={id}&language={language}"; string content = await GetPageContent(url); ITvEpisode episodeDetails = _nfoFactory.CreateEpisode(); // TODO : parse your content to create to fill the episodeDetails episodes.Add(episodeDetails); // return all episodes return(episodes.ToArray()); }
/// <summary> /// Constructor Injection /// </summary> /// <param name="tvEpisodeService"></param> public Television(ITvEpisode tvEpisodeService) { constructorInjectedService = tvEpisodeService; }