using System; using System.Threading.Tasks; using Microsoft.AspNetCore.Identity; using RdtClient.Data.Data; namespace RdtClient.Service.Services { public interface IAuthentication { Task Register(String userName, String password); Task Login(String userName, String password); Task GetUser(); Task Logout(); } public class Authentication : IAuthentication { private readonly SignInManager _signInManager; private readonly UserManager _userManager; private readonly IUserData _userData; public Authentication(SignInManager signInManager, UserManager userManager, IUserData userData) { _signInManager = signInManager; _userManager = userManager; _userData = userData; } public async Task Register(String userName, String password) { var user = new IdentityUser(userName); var result = await _userManager.CreateAsync(user, password); return result; } public async Task Login(String userName, String password) { var result = await _signInManager.PasswordSignInAsync(userName, password, true, false); return result; } public async Task GetUser() { return await _userData.GetUser(); } public async Task Logout() { await _signInManager.SignOutAsync(); } } }