From e525dbb4eddc05ecf811c8a4e1afbf3196f80be7 Mon Sep 17 00:00:00 2001 From: Syndamia Date: Thu, 13 May 2021 15:52:56 +0300 Subject: Added service null argument checks and their error --- ExamTemplate/Common/ErrorMessages.cs | 12 ++++++++++++ ExamTemplate/Services/Services/BaseService.cs | 10 ++++++++++ ExamTemplate/Services/Services/UserService.cs | 23 +++++++++++++++++++++++ 3 files changed, 45 insertions(+) create mode 100644 ExamTemplate/Common/ErrorMessages.cs diff --git a/ExamTemplate/Common/ErrorMessages.cs b/ExamTemplate/Common/ErrorMessages.cs new file mode 100644 index 0000000..fa15b8c --- /dev/null +++ b/ExamTemplate/Common/ErrorMessages.cs @@ -0,0 +1,12 @@ +using System; + +namespace ExamTemplate.Common +{ + public static class ErrorMessages + { + public static string NullObject(Type t) + { + return String.Format("{0} cannot be null!", t); + } + } +} diff --git a/ExamTemplate/Services/Services/BaseService.cs b/ExamTemplate/Services/Services/BaseService.cs index 89b3239..f2ba34e 100644 --- a/ExamTemplate/Services/Services/BaseService.cs +++ b/ExamTemplate/Services/Services/BaseService.cs @@ -6,6 +6,7 @@ using System.Collections.Generic; using Microsoft.EntityFrameworkCore; using System.Linq; using ExamTemplate.Services.Interfaces; +using ExamTemplate.Common; namespace ExamTemplate.Services.Services { @@ -24,6 +25,9 @@ namespace ExamTemplate.Services.Services public virtual async Task CreateAsync(ServiceModel serviceModel) { + if (serviceModel == null) + throw new ArgumentNullException(ErrorMessages.NullObject(typeof(ServiceModel))); + DbModel newEntity = this._autoMapper.Map(serviceModel); await this.GetDbSet() @@ -34,6 +38,9 @@ namespace ExamTemplate.Services.Services public virtual async Task GetByIdAsync(Guid id) { + if (id == null) + throw new ArgumentNullException(ErrorMessages.NullObject(typeof(Guid))); + DbModel entity = await this.GetDbSet() .FindAsync(id); @@ -49,6 +56,9 @@ namespace ExamTemplate.Services.Services public virtual async Task EditAsync(ServiceModel serviceModel) { + if (serviceModel == null) + throw new ArgumentNullException(ErrorMessages.NullObject(typeof(ServiceModel))); + DbModel entity = this._autoMapper.Map(serviceModel); this._context.Update(entity); diff --git a/ExamTemplate/Services/Services/UserService.cs b/ExamTemplate/Services/Services/UserService.cs index f2a3e9f..4e85688 100644 --- a/ExamTemplate/Services/Services/UserService.cs +++ b/ExamTemplate/Services/Services/UserService.cs @@ -31,6 +31,9 @@ namespace ExamTemplate.Services.Services public async Task RegisterUserAsync(RegisterUserServiceModel registerUserServiceModel) { + if (registerUserServiceModel == null) + throw new ArgumentNullException(ErrorMessages.NullObject(typeof(RegisterUserServiceModel))); + User user = this._autoMapper.Map(registerUserServiceModel); user.PasswordHash = this._userManager.PasswordHasher.HashPassword(user, registerUserServiceModel.Password); @@ -53,6 +56,9 @@ namespace ExamTemplate.Services.Services public async Task LoginUserAsync(LoginUserServiceModel loginUserServiceModel) { + if (loginUserServiceModel == null) + throw new ArgumentNullException(ErrorMessages.NullObject(typeof(LoginUserServiceModel))); + SignInResult result = await this._signInManager.PasswordSignInAsync(loginUserServiceModel.Username, loginUserServiceModel.Password, false, false); return result.Succeeded; @@ -65,6 +71,9 @@ namespace ExamTemplate.Services.Services public async Task GetUserByUsernameAsync(string username) { + if (username == null) + throw new ArgumentNullException(ErrorMessages.NullObject(typeof(string))); + User user = await this._userManager.Users .FirstOrDefaultAsync(x => x.UserName == username); @@ -73,6 +82,9 @@ namespace ExamTemplate.Services.Services public async Task GetUserByClaimsAsync(ClaimsPrincipal claimsPrincipal) { + if (claimsPrincipal == null) + throw new ArgumentNullException(ErrorMessages.NullObject(typeof(ClaimsPrincipal))); + User user = await this._userManager.GetUserAsync(claimsPrincipal); return this._autoMapper.Map(user); @@ -80,6 +92,11 @@ namespace ExamTemplate.Services.Services public async Task EditUserAsync(ClaimsPrincipal claimsPrincipal, UserServiceModel userServiceModel) { + if (claimsPrincipal == null) + throw new ArgumentNullException(ErrorMessages.NullObject(typeof(ClaimsPrincipal))); + if (userServiceModel == null) + throw new ArgumentNullException(ErrorMessages.NullObject(typeof(UserServiceModel))); + User user = await this._userManager.GetUserAsync(claimsPrincipal); user.UserName = userServiceModel.Username; @@ -92,6 +109,9 @@ namespace ExamTemplate.Services.Services public async Task DeleteUserAsync(ClaimsPrincipal claimsPrincipal) { + if (claimsPrincipal == null) + throw new ArgumentNullException(ErrorMessages.NullObject(typeof(ClaimsPrincipal))); + User user = await this._userManager.GetUserAsync(claimsPrincipal); IdentityResult result = await this._userManager.DeleteAsync(user); @@ -100,6 +120,9 @@ namespace ExamTemplate.Services.Services public bool IsSignedIn(ClaimsPrincipal claimsPrincipal) { + if (claimsPrincipal == null) + throw new ArgumentNullException(ErrorMessages.NullObject(typeof(ClaimsPrincipal))); + return this._signInManager.IsSignedIn(claimsPrincipal); } } -- cgit v1.2.3