using System.Collections.Generic; using System.Threading.Tasks; using IdentityModel.Client; using Microsoft.AspNetCore.Http; using RestSharp; using xHttpService.Constants; using xIdentityModels.Constants; using xIdentityModels.Dtos; using xIdentityModels.Models; using xIdentityModels.Navigations; using xModels.Dtos; namespace xIdentityService.Interfaces { public partial interface IXIdentityProvider { // string BaseUrl { get; } string RevisionSecretKey { get; } // #region Tools ... string GetUserSelectByParam ( XActionRequest model, bool forceNotNull = true, ICollection excludes = null ); #endregion // #region Tools ... Task RunRestRequest ( RestClient client, RestRequest request, XHttpMethod method, bool supportRefreshingTokens = false ); #endregion // #region Authentication ... Task RequestDiscoveryDocument (); Task RequestScopeAccessToken (string scope); Task Introspection (XTokenResponse model); Task Login (XLoginRequest model); Task Logout (XTokenResponse model); Task Authenticate (XLoginRequest model); Task RefreshTokens (XTokenResponse model); Task ChangePassword ( XTokenResponse tokens, XActionRequest model ); #endregion // #region Profile ... Task> GetUserNames ( XTokenResponse tokens, string userIds ); Task> GetUserNameIds ( XTokenResponse tokens, XUserNameIdRequest model ); Task GetUserProfile ( XTokenResponse tokens, string userSelectByParam ); Task> QueryUsers ( XTokenResponse tokens, XQuery query ); Task> QueryInRoleUsers ( XTokenResponse tokens, string role, XQuery query, bool forceRole = false ); Task> QueryAvatars ( XTokenResponse tokens, string userSelectByParam, XQuery query ); Task ProfileUpdateAsync ( XTokenResponse tokens, string userSelectByParam, XProfileUpdateRequest model ); Task FullProfileUpdateAsync ( XTokenResponse tokens, string userSelectByParam, XProfileUpdateRequest request ); Task AddAvatar ( XTokenResponse tokens, IFormFile file ); Task AddAvatars ( XTokenResponse tokens, IFormFileCollection files ); Task SetAvatar ( XTokenResponse tokens, int avatarId ); Task RemoveAvatars ( XTokenResponse tokens, string avatarIds ); #endregion // #region Registration ... Task CanRegister (string userSelectByParam); Task InviteUser ( XTokenResponse tokens, XActionRequest model ); Task RequestRegistration ( XActionRequest model ); Task AddAccountInfo ( XActionRequest model ); Task AttachProfileImage ( string actionToken, IFormFile file ); Task FinishRegistration (XActionRequest model); Task IsConfirmedEmail ( XTokenResponse tokens, string userSelectByParam ); Task IsConfirmedMobile ( XTokenResponse tokens, string userSelectByParam ); Task RequestConfirmRegistration (XActionRequest model); Task ConfirmRegistration ( XActionRequest model ); Task RequestConfirmMobile (XActionRequest model); Task ConfirmMobileNumber (XActionRequest model); Task RequestConfirmEmail (XActionRequest model); Task ConfirmEmailAddress (XActionRequest model); Task RequestResetPassword (XActionRequest model); Task ResetPassword (XActionRequest model); #endregion // #region Friendship ... Task Follow ( XTokenResponse tokens, string destUser ); Task Cancel ( XTokenResponse tokens, string destUser ); Task UnFollowFollower ( XTokenResponse tokens, string destUser ); Task UnFollowFollowing ( XTokenResponse tokens, string destUser ); Task Block ( XTokenResponse tokens, string destUser ); Task UnBlock ( XTokenResponse tokens, string destUser ); Task AcceptRequest ( XTokenResponse tokens, string destUser ); Task RejectRequest ( XTokenResponse tokens, string destUser ); Task IsFollower ( XTokenResponse tokens, string destUser ); Task GetFollower ( XTokenResponse tokens, string destUser ); Task GetFollowerState ( XTokenResponse tokens, string destUser ); Task> GetFollowers (XTokenResponse tokens); Task> GetAllFollowers (XTokenResponse tokens); Task IsFollowing ( XTokenResponse tokens, string destUser ); Task GetFollowing ( XTokenResponse tokens, string destUser ); Task GetFollowingState ( XTokenResponse tokens, string destUser ); Task> GetFollowings (XTokenResponse tokens); Task> GetAllFollowings (XTokenResponse tokens); Task> GetFollowingList (XTokenResponse tokens); Task> GetFollowersList (XTokenResponse tokens); Task GetFriendshipInfo ( XTokenResponse tokens, string destUser ); #endregion // #region Admin ... Task> Ban ( XTokenResponse tokens, XUserNameIdRequest model ); Task> UnBan ( XTokenResponse tokens, XUserNameIdRequest model ); Task IsBanned ( XTokenResponse tokens, string userSelectByParam ); #endregion } }