/// <summary>Create an instance of a <see cref="TraktPerson"/> subclass from an ID</summary> /// <typeparam name="T">A subclass of <see cref="TraktPerson"/> to be created</typeparam> /// <param name="personId">The person ID</param> /// <param name="personIdType">The person ID type</param> /// <returns>See summary</returns> public static T FromId <T>(int personId, TraktNumericPersonIdType personIdType) where T : TraktPerson { var ret = Activator.CreateInstance <T>(); ret.Ids = new TraktPersonIds(); switch (personIdType) { case TraktNumericPersonIdType.Trakt: ret.Ids.Trakt = personId; break; case TraktNumericPersonIdType.Tmdb: ret.Ids.Tmdb = personId; break; case TraktNumericPersonIdType.TvRage: ret.Ids.TvRage = personId; break; default: throw new ArgumentOutOfRangeException("personIdType"); } return(ret); }
/// <summary>Create an collection of <see cref="TraktPerson"/> subclass instances from a collecion of IDs</summary> /// <typeparam name="T">A subclass of <see cref="TraktPerson"/> to be created</typeparam> /// <param name="personIds">The person ID</param> /// <param name="personIdType">The person ID type</param> /// <returns>See summary</returns> public static IEnumerable <T> FromIds <T>(IEnumerable <int> personIds, TraktNumericPersonIdType personIdType) where T : TraktPerson { return(personIds == null ? null : personIds.Select(personId => FromId <T>(personId, personIdType))); }
/// <summary>Create an instance of <see cref="TraktPerson"/> from an ID</summary> /// <param name="personId">The person ID</param> /// <param name="personIdType">The person ID type</param> /// <returns>See summary</returns> public static TraktPerson FromId(int personId, TraktNumericPersonIdType personIdType) { return(FromId <TraktPerson>(personId, personIdType)); }
/// <summary>Create an collection of <see cref="TraktPerson"/> instances from a collecion of IDs</summary> /// <param name="personIds">The person ID</param> /// <param name="personIdType">The person ID type</param> /// <returns>See summary</returns> public static IEnumerable<TraktPerson> FromIds(IEnumerable<int> personIds, TraktNumericPersonIdType personIdType) { return personIds == null ? null : personIds.Select(personId => FromId<TraktPerson>(personId, personIdType)); }