Files
CMS/src/CMSMicroservice.Application/ClubFeatureCQ/Queries/GetUserClubFeatures/GetUserClubFeaturesQueryHandler.cs

41 lines
1.5 KiB
C#

using CMSMicroservice.Application.Common.Interfaces;
using MediatR;
using Microsoft.EntityFrameworkCore;
namespace CMSMicroservice.Application.ClubFeatureCQ.Queries.GetUserClubFeatures;
/// <summary>
/// هندلر برای دریافت لیست ویژگی‌های باشگاه یک کاربر
/// </summary>
public class GetUserClubFeaturesQueryHandler : IRequestHandler<GetUserClubFeaturesQuery, List<UserClubFeatureDto>>
{
private readonly IApplicationDbContext _context;
public GetUserClubFeaturesQueryHandler(IApplicationDbContext context)
{
_context = context;
}
public async Task<List<UserClubFeatureDto>> Handle(GetUserClubFeaturesQuery request, CancellationToken cancellationToken)
{
var userClubFeatures = await _context.UserClubFeatures
.Include(ucf => ucf.ClubFeature)
.Where(ucf => ucf.UserId == request.UserId && !ucf.IsDeleted)
.Select(ucf => new UserClubFeatureDto
{
Id = ucf.Id,
UserId = ucf.UserId,
ClubMembershipId = ucf.ClubMembershipId,
ClubFeatureId = ucf.ClubFeatureId,
FeatureTitle = ucf.ClubFeature.Title,
FeatureDescription = ucf.ClubFeature.Description,
IsActive = ucf.IsActive,
GrantedAt = ucf.GrantedAt,
Notes = ucf.Notes
})
.ToListAsync(cancellationToken);
return userClubFeatures;
}
}