From 57cc5682a0efe2b790015f77fe9d2e2a0bb6ed87 Mon Sep 17 00:00:00 2001 From: Syndamia Date: Thu, 6 May 2021 21:52:47 +0300 Subject: Added automapper; Implemented user register; Improved some database configurations --- ExamTemplate/Data/Repositories/UserRepository.cs | 40 ++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 ExamTemplate/Data/Repositories/UserRepository.cs (limited to 'ExamTemplate/Data/Repositories') diff --git a/ExamTemplate/Data/Repositories/UserRepository.cs b/ExamTemplate/Data/Repositories/UserRepository.cs new file mode 100644 index 0000000..97eb21b --- /dev/null +++ b/ExamTemplate/Data/Repositories/UserRepository.cs @@ -0,0 +1,40 @@ +using System.Threading.Tasks; +using ExamTemplate.Data.Models; +using Microsoft.AspNetCore.Identity; + +namespace ExamTemplate.Data.Repositories +{ + public class UserRepository + { + private readonly TemplateContext _context; + private readonly UserManager _userManager; + private readonly RoleManager _roleManager; + + public UserRepository(TemplateContext templateContext, UserManager userManager, RoleManager roleManager) + { + this._context = templateContext; + this._userManager = userManager; + this._roleManager = roleManager; + } + + public async Task AddAsync(User user, string password) + { + user.PasswordHash = this._userManager.PasswordHasher.HashPassword(user, password); + IdentityResult result = await this._userManager.CreateAsync(user); + + return result.Succeeded; + } + + public async Task AddRoleToUserAsync(User user, string roleName) + { + bool succeeded = (await this._userManager.AddToRoleAsync(user, roleName)).Succeeded; + if (succeeded) + { + user.Roles.Add(await this._roleManager.FindByNameAsync(roleName)); + succeeded = await this._context.SaveChangesAsync() >= 1; + } + + return succeeded; + } + } +} -- cgit v1.2.3