public async Task SeriesCategoryTest() { SeriesCategory data = (await FredClient.GetSeriesForCategory("125", false)).FirstOrDefault(); Assert.IsNotNull(data); Assert.IsFalse(String.IsNullOrEmpty(data.Symbol)); Assert.IsFalse(IsZeroString(data.CategoryID)); }
public IActionResult GetSeries(SeriesCategory seriesCategory, string userId = null, bool?leagueMatchesOnly = null, long?startTime = null, long?endTime = null) { var sessions = GetSessionList(userId, startTime, endTime, leagueMatchesOnly); var bowlers = _userContext.GetValidUsersForRoles(VALID_ROLES).Where(u => userId == null || u.Id == userId).ToList(); List <BowlingSeries> series = new BowlingSeriesService(sessions, bowlers).GetSeries(seriesCategory); _logger.LogDebug($"Retrieved {series.Count} series for category ${seriesCategory}"); return(Ok(series)); }
public List <BowlingSeries> GetSeries(SeriesCategory seriesCategory) { switch (seriesCategory) { case SeriesCategory.SessionAverage: return(GetSessionAverageSeries()); case SeriesCategory.OverallAverage: return(GetOverallAverageSeries()); case SeriesCategory.Game: return(GetGameSeries()); case SeriesCategory.StrikePct: return(GetStrikePercentSeries()); case SeriesCategory.SinglePinSparePct: return(GetSinglePinSparePercentSeries()); default: return(new List <BowlingSeries>()); } }
public static async Task SeedData(BrowsingDbContext context, ICapPublisher capBus, IMapper mapper) { const string imageBasePath = "https://image.tmdb.org/t/p/original"; List <CompleteSeries> seriesList = new List <CompleteSeries>(); List <Series> seriesToCreate = new List <Series>(); List <Artist> artistsToCreate = new List <Artist>(); List <Category> categoriesToCreate = new List <Category>(); seriesList = JsonConvert.DeserializeObject <List <CompleteSeries> >(File.ReadAllText(@"/app/Data/Seed/series.json")); foreach (var series in seriesList) { var newSeries = new Series { SeriesId = series.id, Description = series.overview.Substring(0, Math.Min(2000, series.overview.Length)), StartYear = series.first_air_date.HasValue ? series.first_air_date.Value.Year : (int?)null, EndYear = series.last_air_date.HasValue ? series.last_air_date.Value.Year : (int?)null, CoverImageUrl = imageBasePath + series.poster_path, Title = series.name.Substring(0, Math.Min(200, series.name.Length)), LastAirDate = series.last_air_date }; foreach (var writer in series.writers) { var artist = mapper.Map <Artist>(writer); newSeries.Writers.Add(new SeriesWriter { ArtistId = artist.ArtistId, SeriesId = newSeries.SeriesId }); if (!artistsToCreate.Any(a => a.ArtistId == artist.ArtistId)) { artistsToCreate.Add(artist); } } foreach (var cast in series.cast) { var person = series.actors.First(a => a.id == cast.id); var artist = mapper.Map <Artist>(person); if (!artistsToCreate.Any(a => a.ArtistId == artist.ArtistId)) { artistsToCreate.Add(artist); } var seriesActor = new SeriesActor { ArtistId = artist.ArtistId, RoleName = cast.character, Order = cast.order, SeriesId = newSeries.SeriesId }; newSeries.Cast.Add(seriesActor); } foreach (var genre in series.genres) { var category = mapper.Map <Category>(genre); if (!categoriesToCreate.Any(c => c.CategoryId == category.CategoryId)) { categoriesToCreate.Add(category); } var seriesCategory = new SeriesCategory { CategoryId = category.CategoryId, SeriesId = newSeries.SeriesId }; if (!newSeries.Categories.Any(c => c.CategoryId == category.CategoryId)) { newSeries.Categories.Add(seriesCategory); } } foreach (var apiEpisode in series.episodes) { var episode = new Episode { EpisodeId = apiEpisode.id, Description = apiEpisode.overview.Substring(0, Math.Min(1500, apiEpisode.overview.Length)), EpisodeTitle = apiEpisode.name.Substring(0, Math.Min(200, apiEpisode.name.Length)), Release = apiEpisode.air_date, EpisodeNumber = apiEpisode.episode_number, Season = apiEpisode.season_number, SeriesId = newSeries.SeriesId, CoverImageUrl = imageBasePath + apiEpisode.still_path }; newSeries.Episodes.Add(episode); } seriesToCreate.Add(newSeries); } using (var trans = context.Database.BeginTransaction(capBus, autoCommit: false)) { try { context.Categories.AddRange(categoriesToCreate); context.Artists.AddRange(artistsToCreate); context.Series.AddRange(seriesToCreate); await context.SaveChangesAsync(); foreach (var series in seriesToCreate) { var seriesEvent = mapper.Map <SeriesCreatedEvent>(series); capBus.Publish("browsingservice.series.created", seriesEvent); foreach (var episode in series.Episodes) { var episodeEvent = mapper.Map <EpisodeCreatedEvent>(episode); capBus.Publish("browsingservice.episode.created", episodeEvent); } } trans.Commit(); } catch (Exception e) { Console.WriteLine(e.Message); trans.Rollback(); } } }