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 --- .../Services/Configurations/UserMappings.cs | 14 ++++++++++ .../Services/Models/RegisterUserServiceModel.cs | 10 ++++++++ ExamTemplate/Services/Services.csproj | 4 +++ ExamTemplate/Services/UserService.cs | 30 ++++++++++++++++++++++ 4 files changed, 58 insertions(+) create mode 100644 ExamTemplate/Services/Configurations/UserMappings.cs create mode 100644 ExamTemplate/Services/Models/RegisterUserServiceModel.cs create mode 100644 ExamTemplate/Services/UserService.cs (limited to 'ExamTemplate/Services') diff --git a/ExamTemplate/Services/Configurations/UserMappings.cs b/ExamTemplate/Services/Configurations/UserMappings.cs new file mode 100644 index 0000000..13c6633 --- /dev/null +++ b/ExamTemplate/Services/Configurations/UserMappings.cs @@ -0,0 +1,14 @@ +using AutoMapper; +using ExamTemplate.Data.Models; +using ExamTemplate.Services.Models; + +namespace ExamTemplate.Services.Configurations +{ + public class UserMappings : Profile + { + public UserMappings() + { + CreateMap(); + } + } +} diff --git a/ExamTemplate/Services/Models/RegisterUserServiceModel.cs b/ExamTemplate/Services/Models/RegisterUserServiceModel.cs new file mode 100644 index 0000000..7a274ae --- /dev/null +++ b/ExamTemplate/Services/Models/RegisterUserServiceModel.cs @@ -0,0 +1,10 @@ +namespace ExamTemplate.Services.Models +{ + public class RegisterUserServiceModel + { + public string FirstName { get; set; } + public string LastName { get; set; } + public string Username { get; set; } + public string Password { get; set; } + } +} diff --git a/ExamTemplate/Services/Services.csproj b/ExamTemplate/Services/Services.csproj index 59fa33e..bac932a 100644 --- a/ExamTemplate/Services/Services.csproj +++ b/ExamTemplate/Services/Services.csproj @@ -5,6 +5,10 @@ + + + + net5.0 diff --git a/ExamTemplate/Services/UserService.cs b/ExamTemplate/Services/UserService.cs new file mode 100644 index 0000000..848edf6 --- /dev/null +++ b/ExamTemplate/Services/UserService.cs @@ -0,0 +1,30 @@ +using System.Threading.Tasks; +using AutoMapper; +using ExamTemplate.Data.Models; +using ExamTemplate.Data.Repositories; +using ExamTemplate.Services.Models; + +namespace ExamTemplate.Services +{ + public class UserService + { + private readonly IMapper _autoMapper; + private readonly UserRepository _userRepository; + + public UserService(IMapper autoMapper, UserRepository userRepository) + { + this._autoMapper = autoMapper; + this._userRepository = userRepository; + } + + public async Task RegisterUserAsync(RegisterUserServiceModel registerUserServiceModel) + { + User user = this._autoMapper.Map(registerUserServiceModel); + + bool userCreateResult = await this._userRepository.AddAsync(user, registerUserServiceModel.Password); + bool addRoleResult = await this._userRepository.AddRoleToUserAsync(user, Role.UserRole); + + return userCreateResult && addRoleResult; + } + } +} -- cgit v1.2.3