2024-03-07 11:15:47 +01:00

57 lines
2.1 KiB
C#

using AutoMapper;
using DigitalData.Core.CleanArchitecture.Application;
using DigitalData.Core.Contracts.CleanArchitecture.Application;
using DigitalData.Core.Contracts.CultureServices;
using DigitalData.Core.Contracts.Utilities.Service;
using DigitalData.UserManager.Application.Contracts;
using DigitalData.UserManager.Application.DTOs.GroupOfUser;
using DigitalData.UserManager.Domain.Entities;
using DigitalData.UserManager.Infrastructure.Contracts;
namespace DigitalData.UserManager.Application.Services
{
public class GroupOfUserService : CRUDService<IGroupOfUserRepository, GroupOfUserCreateDto, GroupOfUserReadDto, GroupOfUserUpdateDto, GroupOfUser, int>, IGroupOfUserService
{
public GroupOfUserService(IGroupOfUserRepository repository, IKeyTranslationService translationService, IMapper mapper) : base(repository, translationService, mapper)
{
}
public async Task<IServiceMessage> DeleteAsyncByGroupUserId(int groupId, int userId)
{
var mous = await _repository.ReadByGroupUserIdAsync(groupId, userId);
foreach (var mou in mous)
{
await _repository.DeleteAsync(mou);
}
return Successful();
}
public async Task<IServiceResult<IEnumerable<GroupOfUserReadDto>>> ReadAllAsyncWith(bool user, bool group)
{
IEnumerable<GroupOfUser> entities;
if(user && group)
{
entities = await _repository.ReadAllAsyncWithGroupAndUser();
}
else if (user)
{
entities = await _repository.ReadAllAsyncWithUser();
}
else if (group)
{
entities = await _repository.ReadAllAsyncWithGroup();
}
else
{
entities = await _repository.ReadAllAsync();
}
var gouReadDtos = MapOrThrow<IEnumerable<GroupOfUser>, IEnumerable<GroupOfUserReadDto>>(entities);
return Successful(gouReadDtos);
}
}
}