public override async Task <IEnumerable <ITraktPersonIds> > ReadArrayAsync(JsonTextReader jsonReader, CancellationToken cancellationToken = default) { if (jsonReader == null) { return(await Task.FromResult(default(IEnumerable <ITraktPersonIds>))); } if (await jsonReader.ReadAsync(cancellationToken) && jsonReader.TokenType == JsonToken.StartArray) { var personIdsReader = new PersonIdsObjectJsonReader(); var personIdss = new List <ITraktPersonIds>(); ITraktPersonIds personIds = await personIdsReader.ReadObjectAsync(jsonReader, cancellationToken); while (personIds != null) { personIdss.Add(personIds); personIds = await personIdsReader.ReadObjectAsync(jsonReader, cancellationToken); } return(personIdss); } return(await Task.FromResult(default(IEnumerable <ITraktPersonIds>))); }
public override async Task <ITraktPerson> ReadObjectAsync(JsonTextReader jsonReader, CancellationToken cancellationToken = default) { if (jsonReader == null) { return(await Task.FromResult(default(ITraktPerson))); } if (await jsonReader.ReadAsync(cancellationToken) && jsonReader.TokenType == JsonToken.StartObject) { var idsObjectReader = new PersonIdsObjectJsonReader(); ITraktPerson traktPerson = new TraktPerson(); while (await jsonReader.ReadAsync(cancellationToken) && jsonReader.TokenType == JsonToken.PropertyName) { var propertyName = jsonReader.Value.ToString(); switch (propertyName) { case JsonProperties.PERSON_PROPERTY_NAME_NAME: traktPerson.Name = await jsonReader.ReadAsStringAsync(cancellationToken); break; case JsonProperties.PERSON_PROPERTY_NAME_IDS: traktPerson.Ids = await idsObjectReader.ReadObjectAsync(jsonReader, cancellationToken); break; case JsonProperties.PERSON_PROPERTY_NAME_BIOGRAPHY: traktPerson.Biography = await jsonReader.ReadAsStringAsync(cancellationToken); break; case JsonProperties.PERSON_PROPERTY_NAME_BIRTHDAY: { var value = await JsonReaderHelper.ReadDateTimeValueAsync(jsonReader, cancellationToken); if (value.First) { traktPerson.Birthday = value.Second; } break; } case JsonProperties.PERSON_PROPERTY_NAME_DEATH: { var value = await JsonReaderHelper.ReadDateTimeValueAsync(jsonReader, cancellationToken); if (value.First) { traktPerson.Death = value.Second; } break; } case JsonProperties.PERSON_PROPERTY_NAME_BIRTHPLACE: traktPerson.Birthplace = await jsonReader.ReadAsStringAsync(cancellationToken); break; case JsonProperties.PERSON_PROPERTY_NAME_HOMEPAGE: traktPerson.Homepage = await jsonReader.ReadAsStringAsync(cancellationToken); break; default: await JsonReaderHelper.ReadAndIgnoreInvalidContentAsync(jsonReader, cancellationToken); break; } } return(traktPerson); } return(await Task.FromResult(default(ITraktPerson))); }