28 lines
1.1 KiB
C#

using DigitalData.Core.Abstractions.Infrastructure;
using DigitalData.UserManager.Domain.Entities;
namespace DigitalData.UserManager.Infrastructure.Contracts
{
public interface IGroupOfUserRepository : ICRUDRepository<GroupOfUser, int>
{
IQueryable<GroupOfUser> ReadByGroupId(int groupId);
Task<IEnumerable<GroupOfUser>> ReadByGroupUserIdAsync(int groupId, int userId);
Task<IEnumerable<GroupOfUser>> ReadAllAsyncWithGroup();
Task<IEnumerable<GroupOfUser>> ReadAllAsyncWithUser();
Task<IEnumerable<GroupOfUser>> ReadAllAsyncWithGroupAndUser();
Task<IEnumerable<GroupOfUser>> ReadByUsernameAsync(string username);
Task<IEnumerable<GroupOfUser>> ReadByUserIdAsync(int userId);
// merge all GroupOfUserRepository-methods conditionally under this method
Task<IEnumerable<GroupOfUser>> ReadAsync(
bool readOnly = true,
bool withGroup = true, bool withUser = true,
int? id = null, int? groupId = null, int? userId = null, string? username = null);
}
}