Merge branch 'newmain'

This commit is contained in:
masoodafar-web
2025-11-13 23:27:53 +03:30
parent c028809d08
commit c48a04d5f9
13 changed files with 280 additions and 23 deletions

View File

@@ -0,0 +1,11 @@
namespace FrontOffice.BFF.Application.UserCQ.Commands.SetPasswordForUser;
public record SetPasswordForUserCommand : IRequest<Unit>
{
//کلمه عبور فعلی
public string? CurrentPassword { get; init; }
//کلمه عبور
public string NewPassword { get; init; }
//تایید کلمه عبور
public string ConfirmPassword { get; init; }
}

View File

@@ -0,0 +1,16 @@
namespace FrontOffice.BFF.Application.UserCQ.Commands.SetPasswordForUser;
public class SetPasswordForUserCommandHandler : IRequestHandler<SetPasswordForUserCommand, Unit>
{
private readonly IApplicationContractContext _context;
public SetPasswordForUserCommandHandler(IApplicationContractContext context)
{
_context = context;
}
public async Task<Unit> Handle(SetPasswordForUserCommand request, CancellationToken cancellationToken)
{
//TODO: Implement your business logic
return new Unit();
}
}

View File

@@ -0,0 +1,18 @@
namespace FrontOffice.BFF.Application.UserCQ.Commands.SetPasswordForUser;
public class SetPasswordForUserCommandValidator : AbstractValidator<SetPasswordForUserCommand>
{
public SetPasswordForUserCommandValidator()
{
RuleFor(model => model.NewPassword)
.NotEmpty();
RuleFor(model => model.ConfirmPassword)
.NotEmpty();
}
public Func<object, string, Task<IEnumerable<string>>> ValidateValue => async (model, propertyName) =>
{
var result = await ValidateAsync(ValidationContext<SetPasswordForUserCommand>.CreateWithOptions((SetPasswordForUserCommand)model, x => x.IncludeProperties(propertyName)));
if (result.IsValid)
return Array.Empty<string>();
return result.Errors.Select(e => e.ErrorMessage);
};
}

View File

@@ -0,0 +1,9 @@
namespace FrontOffice.BFF.Application.UserCQ.Queries.AdminGetJwtToken;
public record AdminGetJwtTokenQuery : IRequest<AdminGetJwtTokenResponseDto>
{
//نام کاربری
public string Username { get; init; }
//کلمه عبور
public string Password { get; init; }
}

View File

@@ -0,0 +1,16 @@
namespace FrontOffice.BFF.Application.UserCQ.Queries.AdminGetJwtToken;
public class AdminGetJwtTokenQueryHandler : IRequestHandler<AdminGetJwtTokenQuery, AdminGetJwtTokenResponseDto>
{
private readonly IApplicationContractContext _context;
public AdminGetJwtTokenQueryHandler(IApplicationContractContext context)
{
_context = context;
}
public async Task<AdminGetJwtTokenResponseDto> Handle(AdminGetJwtTokenQuery request, CancellationToken cancellationToken)
{
//TODO: Implement your business logic
return new AdminGetJwtTokenResponseDto();
}
}

View File

@@ -0,0 +1,18 @@
namespace FrontOffice.BFF.Application.UserCQ.Queries.AdminGetJwtToken;
public class AdminGetJwtTokenQueryValidator : AbstractValidator<AdminGetJwtTokenQuery>
{
public AdminGetJwtTokenQueryValidator()
{
RuleFor(model => model.Username)
.NotEmpty();
RuleFor(model => model.Password)
.NotEmpty();
}
public Func<object, string, Task<IEnumerable<string>>> ValidateValue => async (model, propertyName) =>
{
var result = await ValidateAsync(ValidationContext<AdminGetJwtTokenQuery>.CreateWithOptions((AdminGetJwtTokenQuery)model, x => x.IncludeProperties(propertyName)));
if (result.IsValid)
return Array.Empty<string>();
return result.Errors.Select(e => e.ErrorMessage);
};
}

View File

@@ -0,0 +1,7 @@
namespace FrontOffice.BFF.Application.UserCQ.Queries.AdminGetJwtToken;
public class AdminGetJwtTokenResponseDto
{
//توکن
public string Token { get; set; }
}