80 lines
2.6 KiB
C#
80 lines
2.6 KiB
C#
|
|
using CMSMicroservice.Protobuf.Protos.Configuration;
|
|
|
|
namespace BackOffice.BFF.Application.ConfigurationCQ.Queries.GetAllConfigurations;
|
|
|
|
public class GetAllConfigurationsQueryHandler : IRequestHandler<GetAllConfigurationsQuery, GetAllConfigurationsResponseDto>
|
|
{
|
|
private readonly IApplicationContractContext _context;
|
|
|
|
public GetAllConfigurationsQueryHandler(IApplicationContractContext context)
|
|
{
|
|
_context = context;
|
|
}
|
|
|
|
public async Task<GetAllConfigurationsResponseDto> Handle(GetAllConfigurationsQuery request, CancellationToken cancellationToken)
|
|
{
|
|
var grpcRequest = new GetAllConfigurationsRequest
|
|
{
|
|
PaginationState = new CMSMicroservice.Protobuf.Protos.PaginationState
|
|
{
|
|
PageNumber = request.PageIndex,
|
|
PageSize = request.PageSize
|
|
}
|
|
};
|
|
|
|
if (request.Scope.HasValue || request.IsActive.HasValue)
|
|
{
|
|
grpcRequest.Filter = new GetAllConfigurationsFilter();
|
|
|
|
if (request.Scope.HasValue)
|
|
{
|
|
grpcRequest.Filter.Scope = request.Scope.Value;
|
|
}
|
|
|
|
if (request.IsActive.HasValue)
|
|
{
|
|
grpcRequest.Filter.IsActive = request.IsActive.Value;
|
|
}
|
|
}
|
|
|
|
var response = await _context.Configurations.GetAllConfigurationsAsync(grpcRequest, cancellationToken: cancellationToken);
|
|
|
|
var result = new GetAllConfigurationsResponseDto
|
|
{
|
|
MetaData = new MetaDataDto
|
|
{
|
|
TotalCount = (int)(response.MetaData?.TotalCount ?? 0),
|
|
PageSize = (int)(response.MetaData?.PageSize ?? request.PageSize),
|
|
CurrentPage = (int)(response.MetaData?.CurrentPage ?? request.PageIndex),
|
|
TotalPages = (int)(response.MetaData?.TotalPage ?? 0)
|
|
},
|
|
Models = response.Models.Select(m => new ConfigurationDto
|
|
{
|
|
Id = m.Id,
|
|
Key = m.Key,
|
|
Value = m.Value,
|
|
Description = m.Description,
|
|
Scope = m.Scope,
|
|
ScopeDisplay = GetScopeDisplay(m.Scope),
|
|
IsActive = m.IsActive,
|
|
Created = m.Created?.ToDateTime() ?? DateTime.UtcNow
|
|
}).ToList()
|
|
};
|
|
|
|
return result;
|
|
}
|
|
|
|
private string GetScopeDisplay(int scope)
|
|
{
|
|
return scope switch
|
|
{
|
|
0 => "سیستم",
|
|
1 => "شبکه",
|
|
2 => "باشگاه",
|
|
3 => "کمیسیون",
|
|
_ => "نامشخص"
|
|
};
|
|
}
|
|
}
|