using System.Collections.Generic; using System.Linq; using AutoMapper; using MediatR; using ModernKeePass.Application.Common.Interfaces; using ModernKeePass.Application.Group.Models; using ModernKeePass.Domain.Exceptions; namespace ModernKeePass.Application.Group.Queries.GetAllGroups { public class GetAllGroupsQuery : IRequest> { public string GroupId { get; set; } public class GetAllGroupsQueryHandler : IRequestHandler> { private readonly IDatabaseProxy _database; private readonly IMapper _mapper; public GetAllGroupsQueryHandler(IDatabaseProxy database, IMapper mapper) { _database = database; _mapper = mapper; } public IEnumerable Handle(GetAllGroupsQuery message) { if (!_database.IsOpen) throw new DatabaseClosedException(); return _database.GetAllGroups(message.GroupId).Select(g => _mapper.Map(g)); } } } }