using AutoMapper; using DigitalData.Core.Application; using DigitalData.Core.Contracts.Application; using DigitalData.Core.Contracts.CultureServices; using DigitalData.UserManager.Application.Contracts; using DigitalData.UserManager.Application.DTOs.Group; using DigitalData.UserManager.Domain.Entities; using DigitalData.UserManager.Infrastructure.Contracts; namespace DigitalData.UserManager.Application.Services { public class GroupService : CRUDService, IGroupService { public GroupService(IGroupRepository repository, IKeyTranslationService translationService, IMapper mapper) : base(repository, translationService, mapper) { } public async Task> CreateAsync(ADGroup adGroup) { var group = _mapper.MapOrThrow(adGroup); if (await HasEntity(group.Guid)) return Failed(MessageKey.GroupAlreadyExists.ToString()); var createdGroup = await _repository.CreateAsync(group); if (createdGroup is null) return Failed(); else return Successful(KeyValueOf(createdGroup)); } } }