ezet / evelib

Eve Online Library.NET is an open source C# wrapper for CCPs Eve Online API and other popular Eve Online APIs.
Apache License 2.0
71 stars 36 forks source link

EveWho 'GetCorporationMembers' Does not deseralize 'characters' #54

Closed monkeywire closed 8 years ago

monkeywire commented 8 years ago

When calling EveWho.GetCorporationMembers(id) the result returns as expected however the 'Members' property is null.

I have traced this through to EveLib.Core.Serializer and it is reciving proper JSON

"{\"info\":{\"corporation_id\":\"869043665\",\"name\":\"Woopatang\",\"memberCount\":\"52\"},\"characters\":[{\"character_id\":\"149932493\",\"corporation_id\":\"869043665\",\"alliance_id\":\"0\",\"name\":\"Agamemon\"},{\"character_id\":\"90464284\",\"corporation_id\":\"869043665\",\"alliance_id\":\"0\",\"name\":\"Aidera Boirelle\"},{\"character_id\":\"490145331\",\"corporation_id\":\"869043665\",\"alliance_id\":\"0\",\"name\":\"Aqiz\"},{\"character_id\":\"483755227\",\"corporation_id\":\"869043665\",\"alliance_id\":\"0\",\"name\":\"Arnel Aalske\"},{\"character_id\":\"703536738\",\"corporation_id\":\"869043665\",\"alliance_id\":\"0\",\"name\":\"Barlas\"},{\"character_id\":\"1353745649\",\"corporation_id\":\"869043665\",\"alliance_id\":\"0\",\"name\":\"Barnaby Jones\"},{\"character_id\":\"93284841\",\"corporation_id\":\"869043665\",\"alliance_id\":\"0\",\"name\":\"Bartamaeus\"},{\"character_id\":\"94481757\",\"corporation_id\":\"869043665\",\"alliance_id\":\"0\",\"name\":\"Brick Mouth\"},{\"character_id\":\"1279716635\",\"corporation_id\":\"869043665\",\"alliance_id\":\"0\",\"name\":\"Dajee\"},{\"character_id\":\"1659526669\",\"corporation_id\":\"869043665\",\"alliance_id\":\"0\",\"name\":\"Dark Magister\"},{\"character_id\":\"90147481\",\"corporation_id\":\"869043665\",\"alliance_id\":\"0\",\"name\":\"Davetronicat\"},{\"character_id\":\"961754162\",\"corporation_id\":\"869043665\",\"alliance_id\":\"0\",\"name\":\"Eibrag\"},{\"character_id\":\"92484975\",\"corporation_id\":\"869043665\",\"alliance_id\":\"0\",\"name\":\"elvin en Tilavine\"},{\"character_id\":\"91295798\",\"corporation_id\":\"869043665\",\"alliance_id\":\"0\",\"name\":\"Farrokh Bulsarra\"},{\"character_id\":\"857061884\",\"corporation_id\":\"869043665\",\"alliance_id\":\"0\",\"name\":\"Garbie\"},{\"character_id\":\"1139849922\",\"corporation_id\":\"869043665\",\"alliance_id\":\"0\",\"name\":\"Garrin Lasyn\"},{\"character_id\":\"94481831\",\"corporation_id\":\"869043665\",\"alliance_id\":\"0\",\"name\":\"GateIsRed\"},{\"character_id\":\"971618108\",\"corporation_id\":\"869043665\",\"alliance_id\":\"0\",\"name\":\"GeneralDisarray\"},{\"character_id\":\"94474585\",\"corporation_id\":\"869043665\",\"alliance_id\":\"0\",\"name\":\"Gideon Manasseh\"},{\"character_id\":\"220886364\",\"corporation_id\":\"869043665\",\"alliance_id\":\"0\",\"name\":\"Guru\"},{\"character_id\":\"90014980\",\"corporation_id\":\"869043665\",\"alliance_id\":\"0\",\"name\":\"Henryetta Jones\"},{\"character_id\":\"978072725\",\"corporation_id\":\"869043665\",\"alliance_id\":\"0\",\"name\":\"Imskered\"},{\"character_id\":\"92061270\",\"corporation_id\":\"869043665\",\"alliance_id\":\"0\",\"name\":\"Jedd I Knight\"},{\"character_id\":\"881773792\",\"corporation_id\":\"869043665\",\"alliance_id\":\"0\",\"name\":\"Jonii\"},{\"character_id\":\"254971697\",\"corporation_id\":\"869043665\",\"alliance_id\":\"0\",\"name\":\"Jumpy Mcchicken\"},{\"character_id\":\"94146087\",\"corporation_id\":\"869043665\",\"alliance_id\":\"0\",\"name\":\"Kal Darksilver\"},{\"character_id\":\"270011443\",\"corporation_id\":\"869043665\",\"alliance_id\":\"0\",\"name\":\"Kal'enedral Quicksilver\"},{\"character_id\":\"603359972\",\"corporation_id\":\"869043665\",\"alliance_id\":\"0\",\"name\":\"Kernel Dagger\"},{\"character_id\":\"764600701\",\"corporation_id\":\"869043665\",\"alliance_id\":\"0\",\"name\":\"Kernel Hauler\"},{\"character_id\":\"90370369\",\"corporation_id\":\"869043665\",\"alliance_id\":\"0\",\"name\":\"Kreis Legatis\"},{\"character_id\":\"240048590\",\"corporation_id\":\"869043665\",\"alliance_id\":\"0\",\"name\":\"Locodekanko\"},{\"character_id\":\"304901755\",\"corporation_id\":\"869043665\",\"alliance_id\":\"0\",\"name\":\"Loot42\"},{\"character_id\":\"1788292390\",\"corporation_id\":\"869043665\",\"alliance_id\":\"0\",\"name\":\"Marros Thiben\"},{\"character_id\":\"372069624\",\"corporation_id\":\"869043665\",\"alliance_id\":\"0\",\"name\":\"Nafai Wiggin\"},{\"character_id\":\"717612139\",\"corporation_id\":\"869043665\",\"alliance_id\":\"0\",\"name\":\"Parnassus\"},{\"character_id\":\"400154940\",\"corporation_id\":\"869043665\",\"alliance_id\":\"0\",\"name\":\"Piratez Rock\"},{\"character_id\":\"1043953065\",\"corporation_id\":\"869043665\",\"alliance_id\":\"0\",\"name\":\"Premier Starr\"},{\"character_id\":\"1134904256\",\"corporation_id\":\"869043665\",\"alliance_id\":\"0\",\"name\":\"Psyching\"},{\"character_id\":\"475122547\",\"corporation_id\":\"869043665\",\"alliance_id\":\"0\",\"name\":\"Rade De'Wrath\"},{\"character_id\":\"471211168\",\"corporation_id\":\"869043665\",\"alliance_id\":\"0\",\"name\":\"Rayzth\"},{\"character_id\":\"1478139842\",\"corporation_id\":\"869043665\",\"alliance_id\":\"0\",\"name\":\"Reglus\"},{\"character_id\":\"508890118\",\"corporation_id\":\"869043665\",\"alliance_id\":\"0\",\"name\":\"Rotundra Jones\"},{\"character_id\":\"90380036\",\"corporation_id\":\"869043665\",\"alliance_id\":\"0\",\"name\":\"Rush Millenial\"},{\"character_id\":\"198409206\",\"corporation_id\":\"869043665\",\"alliance_id\":\"0\",\"name\":\"Scabies Malous\"},{\"character_id\":\"894351737\",\"corporation_id\":\"869043665\",\"alliance_id\":\"0\",\"name\":\"Siddalee\"},{\"character_id\":\"214129738\",\"corporation_id\":\"869043665\",\"alliance_id\":\"0\",\"name\":\"Smutt Peddler\"},{\"character_id\":\"1633218082\",\"corporation_id\":\"869043665\",\"alliance_id\":\"0\",\"name\":\"Squizz Caphinator\"},{\"character_id\":\"1126608741\",\"corporation_id\":\"869043665\",\"alliance_id\":\"0\",\"name\":\"Thendara Darkover\"},{\"character_id\":\"1065396652\",\"corporation_id\":\"869043665\",\"alliance_id\":\"0\",\"name\":\"Woopatang Holdings\"},{\"character_id\":\"1125184784\",\"corporation_id\":\"869043665\",\"alliance_id\":\"0\",\"name\":\"Xaarous\"},{\"character_id\":\"91259668\",\"corporation_id\":\"869043665\",\"alliance_id\":\"0\",\"name\":\"Xenner Amatin\"},{\"character_id\":\"500268324\",\"corporation_id\":\"869043665\",\"alliance_id\":\"0\",\"name\":\"Zaand\"}]}"

However when JsonConvert.DeserializeObject(data, new IsoDateTimeConverter { DateTimeFormat = DateFormat }); is called it returns expected results with the exception of Members being null.

The 'Member' property is mapped to the data member "characters" in the CorporationMembers.cs Model:

[DataMember(Name = "characters")]

In review of the JSON string this seems to be because the "Info" object returned by the EveWho API now has the 'characters' object fall outside of the 'info' object.

By adding a DataMember for characters to the EveWhoResponse Model we can retrieve the characters.

ezet commented 8 years ago

I'll have it fixed tomorrow, thanks for the notice

ezet commented 8 years ago

Fixed in 3b011f0e1aefc82860dbd86a47f045c114a6493d