From 9a4ac43e2a28f3c74682758d6f236f23219e3b28 Mon Sep 17 00:00:00 2001 From: "Amir.H Khademi" Date: Wed, 14 Aug 2024 15:15:44 +0330 Subject: [PATCH] change activity service --- .version | 2 +- Brizco.Api/Brizco.Api.csproj | 4 +-- Brizco.Common/Brizco.Common.csproj | 1 - Brizco.Core/CoreServices/JwtService.cs | 26 +++++++++++-------- .../Activities/DoneActivityCommandHandler.cs | 4 +-- ...dateActivitiesByShiftPlanCommandHandler.cs | 2 +- Brizco.Core/Models/Api/ApiResult.cs | 6 ++--- .../UpdateActivityCommandHandler.cs | 2 ++ .../Handlers/Users/GetStaffQueryHandler.cs | 3 --- 9 files changed, 25 insertions(+), 25 deletions(-) diff --git a/.version b/.version index fac754c..4b00215 100644 --- a/.version +++ b/.version @@ -1 +1 @@ -1.4.11.5 \ No newline at end of file +1.4.12.9 \ No newline at end of file diff --git a/Brizco.Api/Brizco.Api.csproj b/Brizco.Api/Brizco.Api.csproj index af05910..a5076c6 100644 --- a/Brizco.Api/Brizco.Api.csproj +++ b/Brizco.Api/Brizco.Api.csproj @@ -6,8 +6,8 @@ enable Linux ..\docker-compose.dcproj - 1.4.11.5 - 1.4.11.5 + 1.4.12.9 + 1.4.12.9 diff --git a/Brizco.Common/Brizco.Common.csproj b/Brizco.Common/Brizco.Common.csproj index 393ed47..4b81120 100644 --- a/Brizco.Common/Brizco.Common.csproj +++ b/Brizco.Common/Brizco.Common.csproj @@ -4,7 +4,6 @@ net8.0 10 enable - enable diff --git a/Brizco.Core/CoreServices/JwtService.cs b/Brizco.Core/CoreServices/JwtService.cs index 8e88752..b77b08c 100644 --- a/Brizco.Core/CoreServices/JwtService.cs +++ b/Brizco.Core/CoreServices/JwtService.cs @@ -99,20 +99,20 @@ public class JwtService( private AccessToken BaseGenerate(TUser user, List claims) where TUser : ApplicationUser { var secretKey = Encoding.UTF8.GetBytes(_siteSettings.JwtSettings.SecretKey); - var signingCredintial = new SigningCredentials(new SymmetricSecurityKey(secretKey), SecurityAlgorithms.HmacSha512Signature); + var signingCredential = new SigningCredentials(new SymmetricSecurityKey(secretKey), SecurityAlgorithms.HmacSha512Signature); - var desctiptor = new SecurityTokenDescriptor + var descriptor = new SecurityTokenDescriptor { Issuer = _siteSettings.JwtSettings.Issuer, Audience = _siteSettings.JwtSettings.Audience, IssuedAt = DateTime.Now, NotBefore = DateTime.Now, Expires = DateTime.Now.AddDays(_siteSettings.JwtSettings.ExpireAddDay), - SigningCredentials = signingCredintial, + SigningCredentials = signingCredential, Subject = new ClaimsIdentity(claims) }; var handler = new JwtSecurityTokenHandler(); - var token = new AccessToken(handler.CreateJwtSecurityToken(desctiptor)); + var token = new AccessToken(handler.CreateJwtSecurityToken(descriptor)); token.User = user.Adapt(); return token; } @@ -120,20 +120,20 @@ public class JwtService( private AccessToken BaseGenerate(TUser user, List claims) where TUser : ApplicationUser { var secretKey = Encoding.UTF8.GetBytes(_siteSettings.JwtSettings.SecretKey); - var signingCredintial = new SigningCredentials(new SymmetricSecurityKey(secretKey), SecurityAlgorithms.HmacSha512Signature); + var signingCredential = new SigningCredentials(new SymmetricSecurityKey(secretKey), SecurityAlgorithms.HmacSha512Signature); - var desctiptor = new SecurityTokenDescriptor + var descriptor = new SecurityTokenDescriptor { Issuer = _siteSettings.JwtSettings.Issuer, Audience = _siteSettings.JwtSettings.Audience, IssuedAt = DateTime.Now, NotBefore = DateTime.Now, Expires = DateTime.Now.AddDays(_siteSettings.JwtSettings.ExpireAddDay), - SigningCredentials = signingCredintial, + SigningCredentials = signingCredential, Subject = new ClaimsIdentity(claims) }; var handler = new JwtSecurityTokenHandler(); - var token = new AccessToken(handler.CreateJwtSecurityToken(desctiptor)); + var token = new AccessToken(handler.CreateJwtSecurityToken(descriptor)); token.User = user.Adapt(); token.Permissions = claims.Where(c => c.Type == "Permission").Select(c => c.Value).ToList(); return token; @@ -145,7 +145,8 @@ public class JwtService( var clFac = await userSignInManager.ClaimsFactory.CreateAsync(baseUser); var claims = new List(); claims.Add(new Claim("JwtID", jwtId)); - claims.Add(new Claim(ClaimTypes.Name, baseUser.UserName)); + if (baseUser.UserName != null) + claims.Add(new Claim(ClaimTypes.Name, baseUser.UserName)); claims.Add(new Claim("SignUpStatus", ((int)baseUser.SignUpStatus).ToString())); claims.Add(new Claim(ClaimTypes.NameIdentifier, baseUser.Id.ToString())); if (baseUser.Email != null) @@ -159,10 +160,13 @@ public class JwtService( private async Task> GetClaims(TUser baseUser, string jwtId, string roleId) where TUser : ApplicationUser { var applicationRole = await roleManager.FindByIdAsync(roleId); + if (applicationRole == null) + throw new Exception("Role not found"); var roleClaims = await roleManager.GetClaimsAsync(applicationRole); var claims = new List(); claims.Add(new Claim("SignUpStatus", ((int)baseUser.SignUpStatus).ToString())); - claims.Add(new Claim(ClaimTypes.Name, baseUser.UserName)); + if (baseUser.UserName != null) + claims.Add(new Claim(ClaimTypes.Name, baseUser.UserName)); claims.Add(new Claim(ClaimTypes.NameIdentifier, baseUser.Id.ToString())); claims.Add(new Claim(ClaimTypes.Role, applicationRole.EnglishName)); claims.Add(new Claim("RoleId", applicationRole.Id.ToString())); @@ -171,7 +175,7 @@ public class JwtService( claims.AddRange(roleClaims); claims.Add(new Claim("JwtID", jwtId)); claims.Add(new Claim(ClaimTypes.Gender, baseUser.Gender == 0 ? "Female" : "Mail")); - claims.Add(new Claim("FullName",baseUser.FirstName+ " " +baseUser.LastName)); + claims.Add(new Claim("FullName", baseUser.FirstName + " " + baseUser.LastName)); return claims; } diff --git a/Brizco.Core/EntityServices/Handlers/Activities/DoneActivityCommandHandler.cs b/Brizco.Core/EntityServices/Handlers/Activities/DoneActivityCommandHandler.cs index eed68d9..bad0307 100644 --- a/Brizco.Core/EntityServices/Handlers/Activities/DoneActivityCommandHandler.cs +++ b/Brizco.Core/EntityServices/Handlers/Activities/DoneActivityCommandHandler.cs @@ -1,5 +1,4 @@ -using Brizco.Domain.Entities.ShiftPlans; -using Brizco.Domain.Entities.Tasks; +using Brizco.Domain.Entities.Tasks; namespace Brizco.Core.EntityServices.Handlers.Activities; @@ -7,7 +6,6 @@ public class DoneActivityCommandHandler(IRepositoryWrapper repositoryWrapper) : { public async Task Handle(DoneActivityCommand request, CancellationToken cancellationToken) { - var activity = await repositoryWrapper.SetRepository() .TableNoTracking .FirstOrDefaultAsync(a => a.Id == request.Id, cancellationToken); diff --git a/Brizco.Core/EntityServices/Handlers/Activities/UpdateActivitiesByShiftPlanCommandHandler.cs b/Brizco.Core/EntityServices/Handlers/Activities/UpdateActivitiesByShiftPlanCommandHandler.cs index 5d88128..0ae032f 100644 --- a/Brizco.Core/EntityServices/Handlers/Activities/UpdateActivitiesByShiftPlanCommandHandler.cs +++ b/Brizco.Core/EntityServices/Handlers/Activities/UpdateActivitiesByShiftPlanCommandHandler.cs @@ -51,7 +51,7 @@ public class UpdateActivitiesByShiftPlanCommandHandler(IRepositoryWrapper reposi var activities = await repositoryWrapper.SetRepository() .TableNoTracking - .Where(a => a.ShiftPlanId == shiftPlan.ShiftId && a.SetFor.Date == shiftPlan.PlanFor.Date) + .Where(a => a.ShiftPlanId == shiftPlan.Id && a.SetFor.Date == shiftPlan.PlanFor.Date) .Select(ActivityMapper.ProjectToLDto) .ToListAsync(cancellationToken); foreach (var activity in activities) diff --git a/Brizco.Core/Models/Api/ApiResult.cs b/Brizco.Core/Models/Api/ApiResult.cs index 419ff02..f68ff4a 100644 --- a/Brizco.Core/Models/Api/ApiResult.cs +++ b/Brizco.Core/Models/Api/ApiResult.cs @@ -3,7 +3,7 @@ namespace Brizco.Core.Models.Api; -public class ApiResult(bool isSuccess, ApiResultStatusCode statusCode, string message = null) +public class ApiResult(bool isSuccess, ApiResultStatusCode statusCode, string? message = null) { public bool IsSuccess { get; set; } = isSuccess; public ApiResultStatusCode StatusCode { get; set; } = statusCode; @@ -58,12 +58,12 @@ public class ApiResult(bool isSuccess, ApiResultStatusCode statusCode, string me #endregion } -public class ApiResult(bool isSuccess, ApiResultStatusCode statusCode, TData data, string message = null) +public class ApiResult(bool isSuccess, ApiResultStatusCode statusCode, TData? data, string? message = null) : ApiResult(isSuccess, statusCode, message) where TData : class { [JsonProperty(NullValueHandling = NullValueHandling.Ignore)] - public TData Data { get; set; } = data; + public TData? Data { get; set; } = data; #region Implicit Operators diff --git a/Brizco.Repository/Handlers/Activities/UpdateActivityCommandHandler.cs b/Brizco.Repository/Handlers/Activities/UpdateActivityCommandHandler.cs index a545ea5..dc2f3b2 100644 --- a/Brizco.Repository/Handlers/Activities/UpdateActivityCommandHandler.cs +++ b/Brizco.Repository/Handlers/Activities/UpdateActivityCommandHandler.cs @@ -33,6 +33,8 @@ public class UpdateActivityCommandHandler(IRepositoryWrapper repositoryWrapper, request.ScheduleType); newTask.Id = request.Id; + newTask.CreatedAt = task.CreatedAt; + newTask.CreatedBy = task.CreatedBy; newTask.SetUser(request.UserId); newTask.SetShiftPlan(request.ShiftPlanId); diff --git a/Brizco.Repository/Handlers/Users/GetStaffQueryHandler.cs b/Brizco.Repository/Handlers/Users/GetStaffQueryHandler.cs index 03f64e8..942d48c 100644 --- a/Brizco.Repository/Handlers/Users/GetStaffQueryHandler.cs +++ b/Brizco.Repository/Handlers/Users/GetStaffQueryHandler.cs @@ -24,19 +24,16 @@ public class GetStaffQueryHandler(IRepositoryWrapper repositoryWrapper,ICurrentU { case DateTimeQueryFilter.Today: activities = await baseQuery.Where(s => s.SetFor.Date == DateTime.Now.Date) - .Skip(request.Page * count).Take(count) .Select(ActivityMapper.ProjectToSDto) .ToListAsync(cancellationToken); break; case DateTimeQueryFilter.Yesterday: activities = await baseQuery.Where(s => s.SetFor.Date == DateTime.Now.AddDays(-1).Date) - .Skip(request.Page * count).Take(count) .Select(ActivityMapper.ProjectToSDto) .ToListAsync(cancellationToken); break; case DateTimeQueryFilter.Tomorrow: activities = await baseQuery.Where(s => s.SetFor.Date == DateTime.Now.AddDays(1).Date) - .Skip(request.Page * count).Take(count) .Select(ActivityMapper.ProjectToSDto) .ToListAsync(cancellationToken); break;