private static void PopulateApp(ConcurrentBag <AppEntity> updates, StoreAppInfo appInfo, BasicStoreInfo app, string type) { var platforms = GetPlatforms(appInfo); var categories = GetCategories(appInfo.data.categories); var genres = GetGenres(appInfo.data.genres); var publishers = GetDistinctListOrUnknown(appInfo.data.publishers); var developers = GetDistinctListOrUnknown(appInfo.data.developers); var releaseDate = GetReleaseDate(appInfo.data.release_date); var metaCriticScore = GetMetaCriticScore(appInfo.data.metacritic); if (ContainsAppGenre(genres)) { type = AppEntity.AppTypeName; } else if (!categories.Contains("Single-player", StringComparer.OrdinalIgnoreCase)) { type = AppEntity.MultiplayerOnlyTypeName; } CommonEventSource.Log.PopulateApp( app.AppId, app.Name, type, platforms, categories.ToFlatString(), genres.ToFlatString(), publishers.ToFlatString(), developers.ToFlatString(), releaseDate.ToString(CultureInfo.InvariantCulture), metaCriticScore); updates.Add(new AppEntity(app.AppId, app.Name, type, platforms, categories, genres, publishers, developers, releaseDate, metaCriticScore)); }
private static Entities.Platforms GetPlatforms(StoreAppInfo appInfo) { if (appInfo.data.platforms == null) { return(Entities.Platforms.None); } return((appInfo.data.platforms.windows ? Entities.Platforms.Windows : Entities.Platforms.None) | (appInfo.data.platforms.mac ? Entities.Platforms.Mac : Entities.Platforms.None) | (appInfo.data.platforms.linux ? Entities.Platforms.Linux : Entities.Platforms.None)); }