Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -96,16 +96,20 @@ public async Task<List<JastGameData>> GetGamesAsync(CancellationToken cancellati

var products = await _apiClient.GetProductsAsync(token, cancellationToken);
var gamesData = products.Select(product =>
new JastGameData(
product.ProductName,
product.ProductCode,
product.GameId,
product.Game.ApiRoute,
product.Game.Translations.EnUs?.Id,
product.Game.Translations.Ja?.Id,
product.Game.Translations.ZhHans?.Id,
product.Game.Translations.ZhHant?.Id
)).ToList();
{
var variant = product.Variant;
var game = product.Game ?? variant.Game;
return new JastGameData(
variant.ProductName,
variant.ProductCode,
variant.GameId,
game.ApiRoute,
game.Translations.EnUs?.Id,
game.Translations.Ja?.Id,
game.Translations.ZhHans?.Id,
game.Translations.ZhHant?.Id
);
}).ToList();

return gamesData;
}
Expand Down Expand Up @@ -183,4 +187,4 @@ public async Task<Uri> GetAssetDownloadLinkAsync(
cancellationToken);
}
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -38,8 +38,8 @@ public class Product
[JsonProperty("@type")]
public ProductType Type { get; set; }

[JsonProperty("variants")]
public Variant[] Variants { get; set; }
[JsonProperty("game")]
public Game Game { get; set; }

[JsonProperty("variant")]
public Variant Variant { get; set; }
Expand Down Expand Up @@ -405,4 +405,4 @@ public override void WriteJson(JsonWriter writer, object untypedValue, JsonSeria

public static readonly EnUsEnumConverter Singleton = new EnUsEnumConverter();
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -113,7 +113,7 @@ public async Task<GameTranslationsResponse> GetGameTranslationsAsync(Authenticat
return Serialization.FromJson<GameTranslationsResponse>(result.Content);
}

public async Task<List<Variant>> GetProductsAsync(AuthenticationToken token, CancellationToken cancellationToken = default)
public async Task<List<Product>> GetProductsAsync(AuthenticationToken token, CancellationToken cancellationToken = default)
{
if (token is null || token.Token.IsNullOrWhiteSpace())
{
Expand All @@ -126,7 +126,7 @@ public async Task<List<Variant>> GetProductsAsync(AuthenticationToken token, Can
["Accept-Encoding"] = "utf-8"
};

var products = new List<Variant>();
var products = new List<Product>();
var page = 1;
while (true)
{
Expand Down Expand Up @@ -157,9 +157,9 @@ public async Task<List<Variant>> GetProductsAsync(AuthenticationToken token, Can
}

var response = Serialization.FromJson<GetGamesResponse>(result.Content);
var variants = response.Products?.Select(x => x.Variant).ToList();
products.AddRange(variants);
if (!variants.Any() || page == response.Pages)
var pageProducts = response.Products ?? new Product[0];
products.AddRange(pageProducts);
if (!pageProducts.Any() || page == response.Pages)
{
break;
}
Expand Down