using System.Collections.Generic; using Kreta.DataAccessManual.Interfaces; using Kreta.Ellenorzo.Domain.VN.Adatszotar; using Kreta.Ellenorzo.Domain.VN.Telefon; using Kreta.Ellenorzo.Domain.VN.UniqueIdentifier; using Kreta.Enums; namespace Kreta.Ellenorzo.BL.VN.Telefon { internal static class TelefonSubqueries { internal static HashSet ListTelefon(IDalHandler h, TelefonListRequest request) { var response = new HashSet(new TelefonListResponse()); var felhasznalokTelefonszamai = h.Telefon().ListTelefon(request.FelhasznaloIds, request.IsPublic); foreach (var felhasznalokTelefonszama in felhasznalokTelefonszamai) { var felhasznaloTelefonszamai = new TelefonListResponse { FelhasznaloUid = new FelhasznaloUid(felhasznalokTelefonszama.FelhasznaloId) }; var telefonszam = new TelefonResponse { Uid = new TelefonUid(felhasznalokTelefonszama.Id), Telefonszam = felhasznalokTelefonszama.Telefonszam, Tipus = new Adatszotar(felhasznalokTelefonszama.Tipus, felhasznalokTelefonszama.TipusNeve), IsAlapertelmezett = felhasznalokTelefonszama.IsAlapertelmezett }; felhasznaloTelefonszamai.Telefonszamok.Add(telefonszam); if (!response.Add(felhasznaloTelefonszamai)) { _ = response.TryGetValue(felhasznaloTelefonszamai, out TelefonListResponse foundResponseItem); foundResponseItem.Telefonszamok.Add(telefonszam); } } return response; } } }