/// <summary> Get the additional user information using a username as filter.</summary> /// <typeparam name="TBooru"> The API to use for routing.</typeparam> /// <typeparam name="TBooruSelfUser"> The self user type to use.</typeparam> /// <typeparam name="TBooruUser"> The user type to use.</typeparam> /// <param name="booruApi"> The api to use for the call.</param> /// <param name="userInfo"> The user information to get the username from.</param> /// <returns> The additional user information.</returns> public static async Task <TBooruUser> GetUserInfoByUsernameAsync <TBooru, TBooruSelfUser, TBooruUser>(this IBooruSelfUserInfoApi <TBooru, TBooruSelfUser, TBooruUser> booruApi, IBooruUserInfo <TBooru> userInfo) where TBooru : IBooruSelfUserApi <TBooru, TBooruSelfUser> where TBooruSelfUser : IBooruSelfUser <TBooru, TBooruSelfUser> where TBooruUser : IBooruUserInfo <TBooru> => await booruApi.GetUserInfoByUsernameAsync(userInfo.Username);
/// <summary> Gets the favorite posts of a user.</summary> /// <typeparam name="TBooru"> The api to use for calls.</typeparam> /// <typeparam name="TBooruSelfUser"> The self user type to use.</typeparam> /// <typeparam name="TBooruPost"> The post type use.</typeparam> /// <param name="booruApi"> The api to use for the call.</param> /// <param name="userInfo"> The user information to get the username from.</param> /// <returns> A collection of all favorite posts of a user.</returns> public static IAsyncEnumerable <TBooruPost> GetUserFavoritePagesByUsernameAsync <TBooru, TBooruSelfUser, TBooruPost>(this IUserFavoritePostBooruApi <TBooru, TBooruSelfUser, TBooruPost> booruApi, IBooruUserInfo <TBooru> userInfo) where TBooru : IBooruSelfUserApi <TBooru, TBooruSelfUser>, IBooruPostApi <TBooru, TBooruPost> where TBooruSelfUser : IBooruSelfUser <TBooru, TBooruSelfUser> where TBooruPost : IBooruPost <TBooru, TBooruPost> => booruApi.GetUserFavoritePagesByUsernameAsync(userInfo.Username);