From b778a357ba3edf30cb182f7aa6d1e3dc5b7a5263 Mon Sep 17 00:00:00 2001 From: csimonapastore Date: Fri, 28 Mar 2025 23:15:53 +0100 Subject: [PATCH] Fixing issues and improving coverage --- .../Models/Api/Common/Exceptions/CreateException.cs | 11 +++++++++++ .../Models/Api/Common/Exceptions/UpdateException.cs | 11 +++++++++++ MainProject/Services/RoleService.cs | 12 ++++++++---- MainProject/Services/UserService.cs | 7 +++++-- 4 files changed, 35 insertions(+), 6 deletions(-) create mode 100644 MainProject/Models/Api/Common/Exceptions/CreateException.cs create mode 100644 MainProject/Models/Api/Common/Exceptions/UpdateException.cs diff --git a/MainProject/Models/Api/Common/Exceptions/CreateException.cs b/MainProject/Models/Api/Common/Exceptions/CreateException.cs new file mode 100644 index 0000000..1b9edfa --- /dev/null +++ b/MainProject/Models/Api/Common/Exceptions/CreateException.cs @@ -0,0 +1,11 @@ +using System; + +namespace BasicDotnetTemplate.MainProject.Models.Api.Common.Exceptions; + +public class CreateException : Exception +{ + public CreateException(string message, Exception innerException) + : base(message, innerException) + { + } +} diff --git a/MainProject/Models/Api/Common/Exceptions/UpdateException.cs b/MainProject/Models/Api/Common/Exceptions/UpdateException.cs new file mode 100644 index 0000000..f4e15d4 --- /dev/null +++ b/MainProject/Models/Api/Common/Exceptions/UpdateException.cs @@ -0,0 +1,11 @@ +using System; + +namespace BasicDotnetTemplate.MainProject.Models.Api.Common.Exceptions; + +public class UpdateException : Exception +{ + public UpdateException(string message, Exception innerException) + : base(message, innerException) + { + } +} diff --git a/MainProject/Services/RoleService.cs b/MainProject/Services/RoleService.cs index a52b174..021f0a3 100644 --- a/MainProject/Services/RoleService.cs +++ b/MainProject/Services/RoleService.cs @@ -1,6 +1,7 @@ using System.Collections; using BasicDotnetTemplate.MainProject.Core.Database; +using BasicDotnetTemplate.MainProject.Models.Api.Common.Exceptions; using BasicDotnetTemplate.MainProject.Models.Api.Data.Role; using BasicDotnetTemplate.MainProject.Models.Database.SqlServer; using Microsoft.EntityFrameworkCore; @@ -20,6 +21,7 @@ public interface IRoleService public class RoleService : BaseService, IRoleService { + private readonly NLog.Logger Logger = NLog.LogManager.GetCurrentClassLogger(); public RoleService( IHttpContextAccessor httpContextAccessor, IConfiguration configuration, @@ -103,10 +105,11 @@ public class RoleService : BaseService, IRoleService await transaction.CommitAsync(); role = tempRole; } - catch (Exception) + catch (Exception exception) { await transaction.RollbackAsync(); - throw; + Logger.Error(exception, $"[RoleService][CreateRoleAsync]"); + throw new CreateException($"An error occurred while saving the role for transaction ID {transaction.TransactionId}.", exception); } return role; @@ -130,10 +133,11 @@ public class RoleService : BaseService, IRoleService await _sqlServerContext.SaveChangesAsync(); await transaction.CommitAsync(); } - catch (Exception) + catch (Exception exception) { + Logger.Error(exception, $"[RoleService][UpdateRoleAsync] | {transaction.TransactionId}"); await transaction.RollbackAsync(); - throw; + throw new UpdateException($"An error occurred while updating the role for transaction ID {transaction.TransactionId}.", exception); } return role; diff --git a/MainProject/Services/UserService.cs b/MainProject/Services/UserService.cs index 9fb6253..11b44e4 100644 --- a/MainProject/Services/UserService.cs +++ b/MainProject/Services/UserService.cs @@ -1,6 +1,7 @@ using System.Collections; using BasicDotnetTemplate.MainProject.Core.Database; +using BasicDotnetTemplate.MainProject.Models.Api.Common.Exceptions; using BasicDotnetTemplate.MainProject.Models.Api.Data.User; using BasicDotnetTemplate.MainProject.Models.Database.SqlServer; using Microsoft.EntityFrameworkCore; @@ -19,6 +20,7 @@ public interface IUserService public class UserService : BaseService, IUserService { + private readonly NLog.Logger Logger = NLog.LogManager.GetCurrentClassLogger(); public UserService( IHttpContextAccessor httpContextAccessor, IConfiguration configuration, @@ -115,10 +117,11 @@ public class UserService : BaseService, IUserService await transaction.CommitAsync(); user = tempUser; } - catch (Exception) + catch (Exception exception) { await transaction.RollbackAsync(); - throw; + Logger.Error(exception, $"[UserService][CreateUserAsync]"); + throw new CreateException($"An error occurred while creating the user for transaction ID {transaction.TransactionId}.", exception); }