Knocks/BackEnd/Knoks.Core/Logic/Interfaces/IUserManager.cs

27 lines
1.1 KiB
C#

using System.Threading.Tasks;
using Knoks.Core.Entities;
using System.Collections.Generic;
using Knoks.Core.Entities.Args;
namespace Knoks.Core.Logic.Interfaces
{
public interface IUserManager : IInitializable
{
Task<User> CreateUser(CreateUserArgs args);
Task<User> UpdateUser(UpdateUserArgs args);
Task<IEnumerable<User>> GetUsers(long? userId, UserType? userType = null);
Task<User> GetUser(long userId);
Task<User> GetUserByEmail(string email);
Task<User> AuthenticateUser(int apiConsumerId, string email, string password);
FileResponse GetAvatarFile(int userId);
User PlatformUser { get; }
Account PlatformUserAccount { get;}
Task<UserAccounts> GetUserInfo(string accountWalletAddress);
Task<bool> UserExists(string userName);
Task<bool> UserEmailExists(string email);
Task<bool> UserNameExists(string userName, long? userId);
Task<bool> CheckPasswordResetToken(string token);
Task SendPasswordResetLink(string email, string link);
Task<bool> PasswordReset(string token, string newPassword);
}
}