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, IGroupOfUserService { public GroupOfUserService(IGroupOfUserRepository repository, IKeyTranslationService translationService, IMapper mapper) : base(repository, translationService, mapper) { } public async Task 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>> ReadAllAsyncWith(bool user, bool group) { IEnumerable 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>(entities); return Successful(gouReadDtos); } } }