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; } IXSecurityProvider SecurityProvider { 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 Search ... /// /// Query Open To Search User Profiles ... /// /// requested user's identifiers /// how to filter results based on XQuery structure /// an instance of XQueryResult of XUserProfileDto Task> QueryOpenToSearchUsers( XTokenResponse tokens, XQuery query ); #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 GetFriendshipInfo( 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> GetFollowingList(XTokenResponse tokens); Task> QueryFollowers( XQuery query, string destUser, 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> GetFollowersList(XTokenResponse tokens); Task> QueryFollowings( XQuery query, string destUser, XTokenResponse tokens ); #endregion // #region Admin ... Task> Ban( XTokenResponse tokens, XUserNameIdRequest model ); Task> UnBan( XTokenResponse tokens, XUserNameIdRequest model ); Task IsBanned( XTokenResponse tokens, string userSelectByParam ); #endregion // #region Open Actions ... // XDeviceDto GetDevice(); // Task OpenGet( XOpenActionInnerDto model ); // Task GetUserInfo( XDeviceDto device, string userSelectByParam ); Task GetUserInfo( XOpenActionInnerDto dto ); Task GetUserInfo( string token, string request ); // Task> GetUserInfos( XDeviceDto device, string ids ); Task> GetUserInfos( XOpenActionInnerDto dto ); Task> GetUserInfos( string token, string request ); #endregion } }