using back.Entities; using back.Entities.DTOs.Response; using Microsoft.EntityFrameworkCore; using Microsoft.Identity.Client; namespace back.Infra { public class CasaRepository : BaseRepository { private readonly Application_Db_Context context; private readonly IDbContextFactory _dbContextFactory; public CasaRepository(Application_Db_Context _context, IDbContextFactory dbContextFactory) : base(dbContextFactory, _context) { context = _context; _dbContextFactory = dbContextFactory; } public override async Task AddAsync(Casa casa) { if(casa.Direccion == null) { var toReturn = await base.AddAsync(casa); return toReturn; } else { await context.Casas.AddAsync(casa); await context.Direcciones.AddAsync(casa.Direccion); await context.SaveChangesAsync(); return casa; } } public async Task WantItAlls() { var personas = Task.Run(async () => { return await context.Personas.ToListAsync(); }); var casas = Task.Run(async () => { return await context.Casas.ToListAsync(); }); var direcciones = Task.Run(async () => { return await context.Direcciones.ToListAsync(); }); await Task.WhenAll(personas, casas, direcciones); var toReturn = new IWantItAll() { Personas = await personas, Casas = await casas, Direcciones = await direcciones }; return toReturn; } } }