change activity service
parent
cba03cc53b
commit
9a4ac43e2a
|
@ -6,8 +6,8 @@
|
||||||
<ImplicitUsings>enable</ImplicitUsings>
|
<ImplicitUsings>enable</ImplicitUsings>
|
||||||
<DockerDefaultTargetOS>Linux</DockerDefaultTargetOS>
|
<DockerDefaultTargetOS>Linux</DockerDefaultTargetOS>
|
||||||
<DockerComposeProjectPath>..\docker-compose.dcproj</DockerComposeProjectPath>
|
<DockerComposeProjectPath>..\docker-compose.dcproj</DockerComposeProjectPath>
|
||||||
<AssemblyVersion>1.4.11.5</AssemblyVersion>
|
<AssemblyVersion>1.4.12.9</AssemblyVersion>
|
||||||
<FileVersion>1.4.11.5</FileVersion>
|
<FileVersion>1.4.12.9</FileVersion>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
|
|
@ -4,7 +4,6 @@
|
||||||
<TargetFramework>net8.0</TargetFramework>
|
<TargetFramework>net8.0</TargetFramework>
|
||||||
<LangVersion>10</LangVersion>
|
<LangVersion>10</LangVersion>
|
||||||
<ImplicitUsings>enable</ImplicitUsings>
|
<ImplicitUsings>enable</ImplicitUsings>
|
||||||
<Nullable>enable</Nullable>
|
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
|
|
@ -99,20 +99,20 @@ public class JwtService(
|
||||||
private AccessToken<TUserDto> BaseGenerate<TUserDto, TUser>(TUser user, List<Claim> claims) where TUser : ApplicationUser
|
private AccessToken<TUserDto> BaseGenerate<TUserDto, TUser>(TUser user, List<Claim> claims) where TUser : ApplicationUser
|
||||||
{
|
{
|
||||||
var secretKey = Encoding.UTF8.GetBytes(_siteSettings.JwtSettings.SecretKey);
|
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,
|
Issuer = _siteSettings.JwtSettings.Issuer,
|
||||||
Audience = _siteSettings.JwtSettings.Audience,
|
Audience = _siteSettings.JwtSettings.Audience,
|
||||||
IssuedAt = DateTime.Now,
|
IssuedAt = DateTime.Now,
|
||||||
NotBefore = DateTime.Now,
|
NotBefore = DateTime.Now,
|
||||||
Expires = DateTime.Now.AddDays(_siteSettings.JwtSettings.ExpireAddDay),
|
Expires = DateTime.Now.AddDays(_siteSettings.JwtSettings.ExpireAddDay),
|
||||||
SigningCredentials = signingCredintial,
|
SigningCredentials = signingCredential,
|
||||||
Subject = new ClaimsIdentity(claims)
|
Subject = new ClaimsIdentity(claims)
|
||||||
};
|
};
|
||||||
var handler = new JwtSecurityTokenHandler();
|
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>();
|
token.User = user.Adapt<TUserDto>();
|
||||||
return token;
|
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
|
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 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,
|
Issuer = _siteSettings.JwtSettings.Issuer,
|
||||||
Audience = _siteSettings.JwtSettings.Audience,
|
Audience = _siteSettings.JwtSettings.Audience,
|
||||||
IssuedAt = DateTime.Now,
|
IssuedAt = DateTime.Now,
|
||||||
NotBefore = DateTime.Now,
|
NotBefore = DateTime.Now,
|
||||||
Expires = DateTime.Now.AddDays(_siteSettings.JwtSettings.ExpireAddDay),
|
Expires = DateTime.Now.AddDays(_siteSettings.JwtSettings.ExpireAddDay),
|
||||||
SigningCredentials = signingCredintial,
|
SigningCredentials = signingCredential,
|
||||||
Subject = new ClaimsIdentity(claims)
|
Subject = new ClaimsIdentity(claims)
|
||||||
};
|
};
|
||||||
var handler = new JwtSecurityTokenHandler();
|
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.User = user.Adapt<TUserDto>();
|
||||||
token.Permissions = claims.Where(c => c.Type == "Permission").Select(c => c.Value).ToList();
|
token.Permissions = claims.Where(c => c.Type == "Permission").Select(c => c.Value).ToList();
|
||||||
return token;
|
return token;
|
||||||
|
@ -145,7 +145,8 @@ public class JwtService(
|
||||||
var clFac = await userSignInManager.ClaimsFactory.CreateAsync(baseUser);
|
var clFac = await userSignInManager.ClaimsFactory.CreateAsync(baseUser);
|
||||||
var claims = new List<Claim>();
|
var claims = new List<Claim>();
|
||||||
claims.Add(new Claim("JwtID", jwtId));
|
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("SignUpStatus", ((int)baseUser.SignUpStatus).ToString()));
|
||||||
claims.Add(new Claim(ClaimTypes.NameIdentifier, baseUser.Id.ToString()));
|
claims.Add(new Claim(ClaimTypes.NameIdentifier, baseUser.Id.ToString()));
|
||||||
if (baseUser.Email != null)
|
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
|
private async Task<List<Claim>> GetClaims<TUser>(TUser baseUser, string jwtId, string roleId) where TUser : ApplicationUser
|
||||||
{
|
{
|
||||||
var applicationRole = await roleManager.FindByIdAsync(roleId);
|
var applicationRole = await roleManager.FindByIdAsync(roleId);
|
||||||
|
if (applicationRole == null)
|
||||||
|
throw new Exception("Role not found");
|
||||||
var roleClaims = await roleManager.GetClaimsAsync(applicationRole);
|
var roleClaims = await roleManager.GetClaimsAsync(applicationRole);
|
||||||
var claims = new List<Claim>();
|
var claims = new List<Claim>();
|
||||||
claims.Add(new Claim("SignUpStatus", ((int)baseUser.SignUpStatus).ToString()));
|
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.NameIdentifier, baseUser.Id.ToString()));
|
||||||
claims.Add(new Claim(ClaimTypes.Role, applicationRole.EnglishName));
|
claims.Add(new Claim(ClaimTypes.Role, applicationRole.EnglishName));
|
||||||
claims.Add(new Claim("RoleId", applicationRole.Id.ToString()));
|
claims.Add(new Claim("RoleId", applicationRole.Id.ToString()));
|
||||||
|
@ -171,7 +175,7 @@ public class JwtService(
|
||||||
claims.AddRange(roleClaims);
|
claims.AddRange(roleClaims);
|
||||||
claims.Add(new Claim("JwtID", jwtId));
|
claims.Add(new Claim("JwtID", jwtId));
|
||||||
claims.Add(new Claim(ClaimTypes.Gender, baseUser.Gender == 0 ? "Female" : "Mail"));
|
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;
|
return claims;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -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;
|
namespace Brizco.Core.EntityServices.Handlers.Activities;
|
||||||
|
|
||||||
|
@ -7,7 +6,6 @@ public class DoneActivityCommandHandler(IRepositoryWrapper repositoryWrapper) :
|
||||||
{
|
{
|
||||||
public async Task<bool> Handle(DoneActivityCommand request, CancellationToken cancellationToken)
|
public async Task<bool> Handle(DoneActivityCommand request, CancellationToken cancellationToken)
|
||||||
{
|
{
|
||||||
|
|
||||||
var activity = await repositoryWrapper.SetRepository<Activity>()
|
var activity = await repositoryWrapper.SetRepository<Activity>()
|
||||||
.TableNoTracking
|
.TableNoTracking
|
||||||
.FirstOrDefaultAsync(a => a.Id == request.Id, cancellationToken);
|
.FirstOrDefaultAsync(a => a.Id == request.Id, cancellationToken);
|
||||||
|
|
|
@ -51,7 +51,7 @@ public class UpdateActivitiesByShiftPlanCommandHandler(IRepositoryWrapper reposi
|
||||||
|
|
||||||
var activities = await repositoryWrapper.SetRepository<Activity>()
|
var activities = await repositoryWrapper.SetRepository<Activity>()
|
||||||
.TableNoTracking
|
.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)
|
.Select(ActivityMapper.ProjectToLDto)
|
||||||
.ToListAsync(cancellationToken);
|
.ToListAsync(cancellationToken);
|
||||||
foreach (var activity in activities)
|
foreach (var activity in activities)
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
namespace Brizco.Core.Models.Api;
|
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 bool IsSuccess { get; set; } = isSuccess;
|
||||||
public ApiResultStatusCode StatusCode { get; set; } = statusCode;
|
public ApiResultStatusCode StatusCode { get; set; } = statusCode;
|
||||||
|
@ -58,12 +58,12 @@ public class ApiResult(bool isSuccess, ApiResultStatusCode statusCode, string me
|
||||||
#endregion
|
#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)
|
: ApiResult(isSuccess, statusCode, message)
|
||||||
where TData : class
|
where TData : class
|
||||||
{
|
{
|
||||||
[JsonProperty(NullValueHandling = NullValueHandling.Ignore)]
|
[JsonProperty(NullValueHandling = NullValueHandling.Ignore)]
|
||||||
public TData Data { get; set; } = data;
|
public TData? Data { get; set; } = data;
|
||||||
|
|
||||||
#region Implicit Operators
|
#region Implicit Operators
|
||||||
|
|
||||||
|
|
|
@ -33,6 +33,8 @@ public class UpdateActivityCommandHandler(IRepositoryWrapper repositoryWrapper,
|
||||||
request.ScheduleType);
|
request.ScheduleType);
|
||||||
|
|
||||||
newTask.Id = request.Id;
|
newTask.Id = request.Id;
|
||||||
|
newTask.CreatedAt = task.CreatedAt;
|
||||||
|
newTask.CreatedBy = task.CreatedBy;
|
||||||
|
|
||||||
newTask.SetUser(request.UserId);
|
newTask.SetUser(request.UserId);
|
||||||
newTask.SetShiftPlan(request.ShiftPlanId);
|
newTask.SetShiftPlan(request.ShiftPlanId);
|
||||||
|
|
|
@ -24,19 +24,16 @@ public class GetStaffQueryHandler(IRepositoryWrapper repositoryWrapper,ICurrentU
|
||||||
{
|
{
|
||||||
case DateTimeQueryFilter.Today:
|
case DateTimeQueryFilter.Today:
|
||||||
activities = await baseQuery.Where(s => s.SetFor.Date == DateTime.Now.Date)
|
activities = await baseQuery.Where(s => s.SetFor.Date == DateTime.Now.Date)
|
||||||
.Skip(request.Page * count).Take(count)
|
|
||||||
.Select(ActivityMapper.ProjectToSDto)
|
.Select(ActivityMapper.ProjectToSDto)
|
||||||
.ToListAsync(cancellationToken);
|
.ToListAsync(cancellationToken);
|
||||||
break;
|
break;
|
||||||
case DateTimeQueryFilter.Yesterday:
|
case DateTimeQueryFilter.Yesterday:
|
||||||
activities = await baseQuery.Where(s => s.SetFor.Date == DateTime.Now.AddDays(-1).Date)
|
activities = await baseQuery.Where(s => s.SetFor.Date == DateTime.Now.AddDays(-1).Date)
|
||||||
.Skip(request.Page * count).Take(count)
|
|
||||||
.Select(ActivityMapper.ProjectToSDto)
|
.Select(ActivityMapper.ProjectToSDto)
|
||||||
.ToListAsync(cancellationToken);
|
.ToListAsync(cancellationToken);
|
||||||
break;
|
break;
|
||||||
case DateTimeQueryFilter.Tomorrow:
|
case DateTimeQueryFilter.Tomorrow:
|
||||||
activities = await baseQuery.Where(s => s.SetFor.Date == DateTime.Now.AddDays(1).Date)
|
activities = await baseQuery.Where(s => s.SetFor.Date == DateTime.Now.AddDays(1).Date)
|
||||||
.Skip(request.Page * count).Take(count)
|
|
||||||
.Select(ActivityMapper.ProjectToSDto)
|
.Select(ActivityMapper.ProjectToSDto)
|
||||||
.ToListAsync(cancellationToken);
|
.ToListAsync(cancellationToken);
|
||||||
break;
|
break;
|
||||||
|
|
Loading…
Reference in New Issue