private async Task <SolarSystem> ConvertJsonToSolarSystem(string json) { var system = new SolarSystem(); var request = EliteBgsSystemRequest.FromJson(json); system.Name = request.Docs[0].Name; system.ControllingFaction = request.Docs[0].ControllingMinorFaction; system.UpdatedOn = request.Docs[0].UpdatedAt.UtcDateTime; if (!string.IsNullOrEmpty(request.Docs[0].State)) { system.State = request.Docs[0].State; } foreach (var subFaction in request.Docs[0].Factions) { var faction = new SubFaction(); faction.Name = subFaction.Name; if (subFaction?.FactionDetails?.FactionPresence?.Influence != null) { faction.Influence = subFaction.FactionDetails.FactionPresence.Influence; } else { faction.Influence = 0; } system.SubFactions.Add(faction); } foreach (var conflict in request.Docs[0].Conflicts) { system.Conflicts.Add(new Entities.Conflict { Status = conflict.Status, Type = conflict.Type, Factions = new List <ConflictFaction> { new ConflictFaction { DaysWon = (int)conflict.Faction1.DaysWon, FactionName = conflict.Faction1.Name, Stake = conflict.Faction1.Stake }, new ConflictFaction { DaysWon = (int)conflict.Faction2.DaysWon, FactionName = conflict.Faction2.Name, Stake = conflict.Faction2.Stake } } }); } return(system); }
public async Task <List <SolarSystem> > ConvertJsonToListSolarSystem(string json) { var solarSystems = new List <SolarSystem>(); var request = EliteBgsSystemRequest.FromJson(json); foreach (var record in request.Docs) { var system = new SolarSystem(); system.Name = record.Name; system.ControllingFaction = record.ControllingMinorFaction; system.UpdatedOn = record.UpdatedAt.UtcDateTime; if (!string.IsNullOrEmpty(record.State)) { system.State = record.State; } foreach (var subFaction in record.Factions) { system.SubFactions.Add(new SubFaction { Name = subFaction.Name, Influence = subFaction.FactionDetails.FactionPresence.Influence }); } foreach (var conflict in record.Conflicts) { system.Conflicts.Add(new Entities.Conflict { Status = conflict.Status, Type = conflict.Type, Factions = new List <ConflictFaction> { new ConflictFaction { DaysWon = (int)conflict.Faction1.DaysWon, FactionName = conflict.Faction1.Name, Stake = conflict.Faction1.Stake }, new ConflictFaction { DaysWon = (int)conflict.Faction2.DaysWon, FactionName = conflict.Faction2.Name, Stake = conflict.Faction2.Stake } } }); } solarSystems.Add(system); } return(solarSystems); }