-
Notifications
You must be signed in to change notification settings - Fork 5
/
Copy pathUserEngine.cs
65 lines (53 loc) · 2.12 KB
/
UserEngine.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
using System;
using System.Threading.Tasks;
using Business.Engine.Interfaces;
using Core.ApplicationCore.BackEndExceptionHandler;
using Data.DataAccessLayer.Entities;
using Microsoft.AspNetCore.Identity;
namespace Business.Engine.Engines
{
public class UserEngine : IUserEngine
{
private readonly UserManager<CRUDAppUser> _userManager;
private readonly SignInManager<CRUDAppUser> _signInManager;
private readonly IBackEndExceptionHandler _backEndExceptionHandler;
public UserEngine(UserManager<CRUDAppUser> userManager, SignInManager<CRUDAppUser> signInManager, IBackEndExceptionHandler backedExceptionHandler)
{
_userManager = userManager ?? throw new ArgumentNullException(nameof(userManager));
_signInManager = signInManager ?? throw new ArgumentNullException(nameof(signInManager));
_backEndExceptionHandler =
backedExceptionHandler ?? throw new ArgumentNullException(nameof(backedExceptionHandler));
}
public async Task<bool> Register(string userName, string password)
{
CRUDAppUser user = await _userManager.FindByNameAsync(userName);
try
{
if (user != null)
{
return false;
}
IdentityResult identityResult = await _userManager.CreateAsync(new CRUDAppUser
{
UserName = userName,
Email = $"{userName}@test.com"
}, password);
return identityResult.Succeeded;
}
catch (Exception ex)
{
_backEndExceptionHandler.ExceptionOperations("Error registering User", ex);
return false;
}
}
public async Task<bool> Login(string userName, string password)
{
SignInResult result = await _signInManager.PasswordSignInAsync(userName, password, false, false);
return result.Succeeded;
}
public async Task Logout()
{
await _signInManager.SignOutAsync();
}
}
}