change activity service

master
Amir Hossein Khademi 2024-08-14 15:15:44 +03:30
parent cba03cc53b
commit 9a4ac43e2a
9 changed files with 25 additions and 25 deletions

View File

@ -1 +1 @@
1.4.11.5
1.4.12.9

View File

@ -6,8 +6,8 @@
<ImplicitUsings>enable</ImplicitUsings>
<DockerDefaultTargetOS>Linux</DockerDefaultTargetOS>
<DockerComposeProjectPath>..\docker-compose.dcproj</DockerComposeProjectPath>
<AssemblyVersion>1.4.11.5</AssemblyVersion>
<FileVersion>1.4.11.5</FileVersion>
<AssemblyVersion>1.4.12.9</AssemblyVersion>
<FileVersion>1.4.12.9</FileVersion>
</PropertyGroup>
<ItemGroup>

View File

@ -4,7 +4,6 @@
<TargetFramework>net8.0</TargetFramework>
<LangVersion>10</LangVersion>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
</PropertyGroup>
<ItemGroup>

View File

@ -99,20 +99,20 @@ public class JwtService(
private AccessToken<TUserDto> BaseGenerate<TUserDto, TUser>(TUser user, List<Claim> 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<TUserDto>(handler.CreateJwtSecurityToken(desctiptor));
var token = new AccessToken<TUserDto>(handler.CreateJwtSecurityToken(descriptor));
token.User = user.Adapt<TUserDto>();
return token;
}
@ -120,20 +120,20 @@ public class JwtService(
private AccessToken<TUserDto, TRole> BaseGenerate<TUserDto, TUser, TRole>(TUser user, List<Claim> 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<TUserDto, TRole>(handler.CreateJwtSecurityToken(desctiptor));
var token = new AccessToken<TUserDto, TRole>(handler.CreateJwtSecurityToken(descriptor));
token.User = user.Adapt<TUserDto>();
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<Claim>();
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<List<Claim>> GetClaims<TUser>(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<Claim>();
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;
}

View File

@ -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<bool> Handle(DoneActivityCommand request, CancellationToken cancellationToken)
{
var activity = await repositoryWrapper.SetRepository<Activity>()
.TableNoTracking
.FirstOrDefaultAsync(a => a.Id == request.Id, cancellationToken);

View File

@ -51,7 +51,7 @@ public class UpdateActivitiesByShiftPlanCommandHandler(IRepositoryWrapper reposi
var activities = await repositoryWrapper.SetRepository<Activity>()
.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)

View File

@ -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<TData>(bool isSuccess, ApiResultStatusCode statusCode, TData data, string message = null)
public class ApiResult<TData>(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

View File

@ -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);

View File

@ -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;