37 lines
1.2 KiB
C#
37 lines
1.2 KiB
C#
using AutoMapper;
|
|
using IdentityService.WebApi.Applications.Dtos.Common;
|
|
using IM.Commons;
|
|
using System.Linq.Expressions;
|
|
|
|
namespace IdentityService.WebApi.Applications.User
|
|
{
|
|
public class UserResponseFindSpecification : ISpecification<Domain.Entities.User, UserResponse>
|
|
{
|
|
private readonly IEnumerable<Guid> Ids;
|
|
public UserResponseFindSpecification(IEnumerable<Guid> ids, IMapper mapper)
|
|
{
|
|
Ids = ids;
|
|
Criteria = u => Ids.Contains(u.Id);
|
|
Select = u => new UserResponse
|
|
{
|
|
Avatar = u.Avatar,
|
|
CreationTime = u.CreationTime,
|
|
Deletion = u.Deletion,
|
|
Description = u.Description,
|
|
Email = u.Email,
|
|
Id = u.Id,
|
|
NickName = u.NickName,
|
|
Phone = u.PhoneNumber,
|
|
Region = u.Region,
|
|
UserName = u.UserName
|
|
};
|
|
}
|
|
|
|
public Expression<Func<Domain.Entities.User, bool>> Criteria { get; }
|
|
|
|
public List<Expression<Func<Domain.Entities.User, object>>> Includes { get; }
|
|
|
|
public Expression<Func<Domain.Entities.User, UserResponse>> Select { get; }
|
|
}
|
|
}
|