Get the sets
This commit is contained in:
@@ -80,11 +80,14 @@ namespace LaDOSE.Business.Provider.SmashProvider
|
||||
{
|
||||
Name = e.name,
|
||||
SmashId = e.id,
|
||||
Finish = e.state == "COMPLETED",
|
||||
Game = games.FirstOrDefault(g => g.SmashId == e.videogame.id)
|
||||
|
||||
}).ToList();
|
||||
|
||||
return new Event
|
||||
{
|
||||
SmashSlug = slug,
|
||||
Name = querySmash.Result.Tournament.Name,
|
||||
SmashId = querySmash.Result.Tournament.id,
|
||||
Date = querySmash.Result.Tournament.startAt,
|
||||
@@ -97,7 +100,7 @@ namespace LaDOSE.Business.Provider.SmashProvider
|
||||
public Task<List<Tournament>> GetResults(ref List<Tournament> tournaments)
|
||||
{
|
||||
|
||||
foreach (var tournament in tournaments)
|
||||
foreach (var tournament in tournaments.Where(t=>t.Finish).ToList())
|
||||
{
|
||||
var query = new GraphQLRequest
|
||||
{
|
||||
@@ -149,8 +152,8 @@ namespace LaDOSE.Business.Provider.SmashProvider
|
||||
{
|
||||
query.Variables = new
|
||||
{
|
||||
page = querySmash.Result.Event.standings.pageInfo.page,
|
||||
eventsId = tournament.SmashId,
|
||||
page = querySmash.Result.Event.standings.pageInfo.page+1,
|
||||
@event = tournament.SmashId,
|
||||
};
|
||||
querySmash = QuerySmash<EventResponse>(query);
|
||||
standings.AddRange(querySmash.Result.Event.standings.nodes);
|
||||
@@ -183,6 +186,115 @@ namespace LaDOSE.Business.Provider.SmashProvider
|
||||
return Task.FromResult(tournaments);
|
||||
}
|
||||
|
||||
public Task<List<Tournament>> GetSets(ref List<Tournament> tournaments)
|
||||
{
|
||||
|
||||
foreach (var tournament in tournaments.Where(t => t.Finish).ToList())
|
||||
{
|
||||
var query = new GraphQLRequest
|
||||
{
|
||||
Query = @"query SetsQuery($event: ID,$page:Int) {
|
||||
event(id: $event){
|
||||
sets(page:$page,perPage:20){
|
||||
pageInfo {
|
||||
total
|
||||
totalPages
|
||||
page
|
||||
perPage
|
||||
sortBy
|
||||
filter
|
||||
},
|
||||
nodes {
|
||||
id,
|
||||
lPlacement,
|
||||
wPlacement,
|
||||
round,
|
||||
slots {
|
||||
id,
|
||||
slotIndex,
|
||||
standing{
|
||||
id,
|
||||
player{
|
||||
id,
|
||||
user{
|
||||
id,
|
||||
}
|
||||
}
|
||||
stats{
|
||||
score {
|
||||
label
|
||||
value
|
||||
displayValue
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
entrant {
|
||||
id,
|
||||
name,
|
||||
participants{
|
||||
id,
|
||||
gamerTag
|
||||
user {
|
||||
id
|
||||
},
|
||||
}
|
||||
},
|
||||
},
|
||||
phaseGroup {
|
||||
id
|
||||
},
|
||||
identifier
|
||||
},
|
||||
|
||||
}
|
||||
}
|
||||
}",
|
||||
OperationName = "SetsQuery",
|
||||
Variables = new
|
||||
{
|
||||
page = 1,
|
||||
@event = tournament.SmashId,
|
||||
}
|
||||
};
|
||||
var querySmash = QuerySmash<SetsResponse>(query);
|
||||
|
||||
if (querySmash.Result.Event.sets.nodes != null)
|
||||
{
|
||||
var sets = querySmash.Result.Event.sets.nodes;
|
||||
if (querySmash.Result.Event.sets.pageInfo.totalPages > 1)
|
||||
{
|
||||
while (querySmash.Result.Event.sets.pageInfo.page <
|
||||
querySmash.Result.Event.sets.pageInfo.totalPages)
|
||||
{
|
||||
query.Variables = new
|
||||
{
|
||||
page = querySmash.Result.Event.sets.pageInfo.page+1,
|
||||
@event = tournament.SmashId,
|
||||
};
|
||||
querySmash = QuerySmash<SetsResponse>(query);
|
||||
sets.AddRange(querySmash.Result.Event.sets.nodes);
|
||||
}
|
||||
}
|
||||
|
||||
var tset = sets.Select(x => new Set()
|
||||
{
|
||||
Tournament = tournament,
|
||||
TournamentId = tournament.Id,
|
||||
|
||||
Player1Id = PlayerService.GetBySmash(x.slots[0].entrant.participants[0]),
|
||||
Player2Id = PlayerService.GetBySmash(x.slots[1].entrant.participants[0]),
|
||||
Player1Score = x.slots[0].standing.stats.score.value,
|
||||
Player2Score = x.slots[1].standing.stats.score.value,
|
||||
Round = x.round ?? 0,
|
||||
}).ToList();
|
||||
tournament.Sets = tset;
|
||||
}
|
||||
}
|
||||
return Task.FromResult(tournaments);
|
||||
|
||||
}
|
||||
|
||||
public async Task<Event> ParseEvent(string slug)
|
||||
{
|
||||
Event e = await this.GetEvent(slug);
|
||||
|
||||
@@ -31,16 +31,31 @@ namespace LaDOSE.Business.Provider.SmashProvider
|
||||
public int id { get; set; }
|
||||
public string Name { get; set; }
|
||||
}
|
||||
public class ScoreType
|
||||
{
|
||||
public string label { get; set; }
|
||||
public int value { get; set; }
|
||||
public string displayValue { get; set; }
|
||||
|
||||
}
|
||||
public class StatType
|
||||
{
|
||||
public ScoreType score { get; set; }
|
||||
}
|
||||
|
||||
public class StandingType
|
||||
{
|
||||
public int id { get; set; }
|
||||
public string id { get; set; }
|
||||
|
||||
public int placement { get; set; }
|
||||
|
||||
public PlayerType player { get; set; }
|
||||
public ParticipantType player { get; set; }
|
||||
|
||||
public StatType stats { get; set; }
|
||||
|
||||
}
|
||||
public class PlayerType
|
||||
|
||||
public class ParticipantType
|
||||
{
|
||||
public int id { get; set; }
|
||||
public string gamerTag { get; set; }
|
||||
@@ -61,8 +76,37 @@ namespace LaDOSE.Business.Provider.SmashProvider
|
||||
|
||||
public VideoGameType videogame { get; set; }
|
||||
public Node<StandingType> standings { get; set; }
|
||||
public Node<SetType> sets { get; set; }
|
||||
}
|
||||
|
||||
public class EntrantType
|
||||
{
|
||||
public int id { get; set; }
|
||||
public string name { get; set; }
|
||||
|
||||
public List<ParticipantType> participants { get; set; }
|
||||
|
||||
}
|
||||
public class SlotType
|
||||
{
|
||||
public string id { get; set; }
|
||||
public int slotIndex { get; set; }
|
||||
|
||||
public StandingType standing { get; set; }
|
||||
|
||||
public EntrantType entrant { get; set; }
|
||||
|
||||
}
|
||||
public class SetType
|
||||
{
|
||||
public string id { get; set; }
|
||||
public int? lPlacement { get; set; }
|
||||
public int? wPlacement { get; set; }
|
||||
public int? round { get; set; }
|
||||
public List<SlotType> slots { get; set; }
|
||||
public string identifier { get; set; }
|
||||
|
||||
}
|
||||
public class Node<T>
|
||||
{
|
||||
public PageInfoType pageInfo { get; set; }
|
||||
@@ -84,7 +128,11 @@ namespace LaDOSE.Business.Provider.SmashProvider
|
||||
public EventType Event { get; set; }
|
||||
|
||||
}
|
||||
public class SetsResponse
|
||||
{
|
||||
public EventType Event { get; set; }
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user