feat: add ci
This commit is contained in:
@@ -1,11 +1,12 @@
|
||||
using mws.backend.dotnet.application.Common;
|
||||
using mws.backend.dotnet.application.MasterData;
|
||||
using mws.backend.dotnet.domain.MasterData;
|
||||
|
||||
namespace mws.backend.dotnet.application.Common.Repositories;
|
||||
|
||||
public interface IMasterDataRepository : IRepository<MasterDataEntry>
|
||||
{
|
||||
Task<PagedResult<MasterDataEntry>> GetAllAsync(string? group, int page, int pageSize, CancellationToken ct = default);
|
||||
Task<PagedResult<MasterDataEntry>> GetAllAsync(MasterDataFilter filter, int page, int pageSize, CancellationToken ct = default);
|
||||
Task<List<MasterDataEntry>> GetActiveByGroupAsync(string group, CancellationToken ct = default);
|
||||
Task<MasterDataEntry?> GetByIdAsync(Guid id, CancellationToken ct = default);
|
||||
Task<bool> ExistsAsync(string group, string value, Guid? excludeId, CancellationToken ct = default);
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
using mws.backend.dotnet.application.Common;
|
||||
using mws.backend.dotnet.application.Projects;
|
||||
using mws.backend.dotnet.domain.Projects;
|
||||
|
||||
namespace mws.backend.dotnet.application.Common.Repositories;
|
||||
@@ -7,7 +8,7 @@ public interface IProjectRepository : IRepository<Project>
|
||||
{
|
||||
Task<Project?> GetByIdAsync(Guid id, CancellationToken ct = default);
|
||||
Task<Project?> GetForUserAsync(Guid userId, Guid projectId, CancellationToken ct = default);
|
||||
Task<PagedResult<Project>> GetForUserAsync(Guid userId, int page, int pageSize, CancellationToken ct = default);
|
||||
Task<PagedResult<Project>> GetForUserAsync(ProjectListFilter filter, int page, int pageSize, CancellationToken ct = default);
|
||||
Task<List<Project>> SearchForUserAsync(Guid userId, string? term, CancellationToken ct = default);
|
||||
Task<int> CountMembersAsync(Guid projectId, CancellationToken ct = default);
|
||||
|
||||
@@ -15,7 +16,7 @@ public interface IProjectRepository : IRepository<Project>
|
||||
Task<MemberRole?> GetMemberRoleAsync(Guid projectId, Guid userId, CancellationToken ct = default);
|
||||
Task<ProjectMember?> GetMemberAsync(Guid projectId, Guid userId, CancellationToken ct = default);
|
||||
Task<ProjectMember?> GetMemberWithUserAsync(Guid projectId, Guid userId, CancellationToken ct = default);
|
||||
Task<PagedResult<ProjectMember>> GetMembersWithUserAsync(Guid projectId, int page, int pageSize, CancellationToken ct = default);
|
||||
Task<PagedResult<ProjectMember>> GetMembersWithUserAsync(Guid projectId, MemberListFilter filter, int page, int pageSize, CancellationToken ct = default);
|
||||
Task<int> CountOwnersAsync(Guid projectId, CancellationToken ct = default);
|
||||
Task<List<Guid>> GetProjectIdsForUserAsync(Guid userId, CancellationToken ct = default);
|
||||
Task<List<Guid>> GetOwnedProjectIdsAsync(Guid userId, CancellationToken ct = default);
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
using mws.backend.dotnet.application.Common;
|
||||
using mws.backend.dotnet.application.Users;
|
||||
using mws.backend.dotnet.domain.Users;
|
||||
|
||||
namespace mws.backend.dotnet.application.Common.Repositories;
|
||||
@@ -12,5 +13,5 @@ public interface IUserRepository : IRepository<User>
|
||||
Task<bool> ExistsByRoleIdAsync(Guid roleId, CancellationToken ct = default);
|
||||
Task<List<Guid>> GetRoleIdsAsync(Guid userId, CancellationToken ct = default);
|
||||
Task<List<User>> SearchWithRoleAsync(string? term, int? take, CancellationToken ct = default);
|
||||
Task<PagedResult<User>> SearchWithRolePagedAsync(string? term, int page, int pageSize, CancellationToken ct = default);
|
||||
Task<PagedResult<User>> SearchWithRolePagedAsync(UserListFilter filter, int page, int pageSize, CancellationToken ct = default);
|
||||
}
|
||||
|
||||
@@ -18,3 +18,5 @@ public class SaveMasterDataRequest
|
||||
public int SortOrder { get; set; }
|
||||
public bool IsActive { get; set; } = true;
|
||||
}
|
||||
|
||||
public record MasterDataFilter(string? Group, string? Term, bool? IsActive);
|
||||
|
||||
@@ -4,13 +4,13 @@ using mws.backend.dotnet.application.Common;
|
||||
|
||||
namespace mws.backend.dotnet.application.MasterData;
|
||||
|
||||
public record GetMasterDataListQuery(string? Group, int Page, int PageSize) : IRequest<PagedResult<MasterDataDto>>;
|
||||
public record GetMasterDataListQuery(MasterDataFilter Filter, int Page, int PageSize) : IRequest<PagedResult<MasterDataDto>>;
|
||||
|
||||
public class GetMasterDataListHandler(IUnitOfWork uow, IMapper mapper) : IRequestHandler<GetMasterDataListQuery, PagedResult<MasterDataDto>>
|
||||
{
|
||||
public async Task<PagedResult<MasterDataDto>> Handle(GetMasterDataListQuery query, CancellationToken ct)
|
||||
{
|
||||
var entries = await uow.MasterData.GetAllAsync(query.Group, query.Page, query.PageSize, ct);
|
||||
var entries = await uow.MasterData.GetAllAsync(query.Filter, query.Page, query.PageSize, ct);
|
||||
return new PagedResult<MasterDataDto>
|
||||
{
|
||||
Items = mapper.Map<List<MasterDataDto>>(entries.Items),
|
||||
|
||||
@@ -78,4 +78,8 @@ public class RecentDocumentDto
|
||||
public Guid Id { get; set; }
|
||||
public string Title { get; set; } = string.Empty;
|
||||
public DateTime UpdatedAt { get; set; }
|
||||
}
|
||||
}
|
||||
|
||||
public record ProjectListFilter(Guid UserId, string? Term, ProjectStatus? Status, string? CreatedBy, string? UpdatedBy);
|
||||
|
||||
public record MemberListFilter(string? Term, MemberRole? Role);
|
||||
@@ -4,7 +4,7 @@ using mws.backend.dotnet.domain.Projects;
|
||||
|
||||
namespace mws.backend.dotnet.application.Projects;
|
||||
|
||||
public record GetProjectMembersQuery(Guid UserId, Guid ProjectId, int Page, int PageSize) : IRequest<PagedResult<ProjectMemberDto>>;
|
||||
public record GetProjectMembersQuery(Guid UserId, Guid ProjectId, MemberListFilter Filter, int Page, int PageSize) : IRequest<PagedResult<ProjectMemberDto>>;
|
||||
|
||||
public class GetProjectMembersHandler(IUnitOfWork uow) : IRequestHandler<GetProjectMembersQuery, PagedResult<ProjectMemberDto>>
|
||||
{
|
||||
@@ -16,7 +16,7 @@ public class GetProjectMembersHandler(IUnitOfWork uow) : IRequestHandler<GetProj
|
||||
throw new NotFoundException("Project not found");
|
||||
}
|
||||
|
||||
var members = await uow.Projects.GetMembersWithUserAsync(query.ProjectId, query.Page, query.PageSize, ct);
|
||||
var members = await uow.Projects.GetMembersWithUserAsync(query.ProjectId, query.Filter, query.Page, query.PageSize, ct);
|
||||
var permissions = await uow.Projects.GetMemberPermissionsAsync(query.ProjectId, ProjectPermissionScreens.Documents, ct);
|
||||
|
||||
var items = members.Items.Select(m =>
|
||||
|
||||
@@ -4,13 +4,13 @@ using mws.backend.dotnet.application.Common;
|
||||
|
||||
namespace mws.backend.dotnet.application.Projects;
|
||||
|
||||
public record GetProjectsQuery(Guid UserId, int Page, int PageSize) : IRequest<PagedResult<ProjectDto>>;
|
||||
public record GetProjectsQuery(ProjectListFilter Filter, int Page, int PageSize) : IRequest<PagedResult<ProjectDto>>;
|
||||
|
||||
public class GetProjectsHandler(IUnitOfWork uow, IMapper mapper) : IRequestHandler<GetProjectsQuery, PagedResult<ProjectDto>>
|
||||
{
|
||||
public async Task<PagedResult<ProjectDto>> Handle(GetProjectsQuery query, CancellationToken ct)
|
||||
{
|
||||
var projects = await uow.Projects.GetForUserAsync(query.UserId, query.Page, query.PageSize, ct);
|
||||
var projects = await uow.Projects.GetForUserAsync(query.Filter, query.Page, query.PageSize, ct);
|
||||
return new PagedResult<ProjectDto>
|
||||
{
|
||||
Items = mapper.Map<List<ProjectDto>>(projects.Items),
|
||||
|
||||
@@ -45,4 +45,6 @@ public class UserRoleDetailDto
|
||||
public class AssignRoleRequest
|
||||
{
|
||||
public Guid RoleId { get; set; }
|
||||
}
|
||||
}
|
||||
|
||||
public record UserListFilter(string? Term, bool? IsActive);
|
||||
@@ -5,7 +5,7 @@ using mws.backend.dotnet.application.Permissions;
|
||||
|
||||
namespace mws.backend.dotnet.application.Users;
|
||||
|
||||
public record GetUsersQuery(Guid ActorUserId, string? Term, int Page, int PageSize) : IRequest<PagedResult<UserDto>>;
|
||||
public record GetUsersQuery(Guid ActorUserId, UserListFilter Filter, int Page, int PageSize) : IRequest<PagedResult<UserDto>>;
|
||||
|
||||
public class GetUsersHandler(IUnitOfWork uow, IPermissionService permissions, IMapper mapper)
|
||||
: IRequestHandler<GetUsersQuery, PagedResult<UserDto>>
|
||||
@@ -16,7 +16,7 @@ public class GetUsersHandler(IUnitOfWork uow, IPermissionService permissions, IM
|
||||
{
|
||||
await permissions.EnsureAsync(query.ActorUserId, Screen, PermissionAction.View, ct);
|
||||
|
||||
var users = await uow.Users.SearchWithRolePagedAsync(query.Term, query.Page, query.PageSize, ct);
|
||||
var users = await uow.Users.SearchWithRolePagedAsync(query.Filter, query.Page, query.PageSize, ct);
|
||||
return new PagedResult<UserDto>
|
||||
{
|
||||
Items = mapper.Map<List<UserDto>>(users.Items),
|
||||
|
||||
Reference in New Issue
Block a user