public async Task <ActionResult <PaintDTO> > GetPaint(int id) { var paintdto = await _paint.GetPaint(id, GetUserEmail()); if (paintdto == null) { return(NotFound()); } return(paintdto); }
// GetAMiniModel public async Task <MiniModelDTO> GetMiniModel(int id) { MiniModel miniModel = await _context.MiniModels.FindAsync(id); var paintList = await _context.MinisToPaint.Where(x => x.MiniModelId == id) .Include(x => x.Paint) .ToListAsync(); var suppliesList = await _context.MinisToSupply.Where(x => x.MiniModelId == id) .Include(x => x.Supply) .ToListAsync(); // ============ TODO: Needs Testing ============= List <PaintDTO> paints = new List <PaintDTO>(); List <SupplyDTO> supplies = new List <SupplyDTO>(); foreach (var item in paintList) { paints.Add(await _paint.GetPaint(item.Paint.Id)); } foreach (var item in suppliesList) { supplies.Add(await _supply.GetSupply(1)); } MiniModelDTO miniDto = new MiniModelDTO() { Id = miniModel.Id, Name = miniModel.Name, Manufacturer = miniModel.Manufacturer, Faction = miniModel.Faction, PointCost = miniModel.PointCost, BuildState = miniModel.BuildState.ToString(), Paints = paints, Supplies = supplies }; return(miniDto); }
// GetAMiniModel /// <summary> /// the below method allows one to search for a particular minimodel item /// </summary> /// <param name="email">this is the email associated with the current user (ensures they have access to minimodel item)</param> /// <returns>the minimodel item in question</returns> public async Task <MiniModelDTO> GetMiniModel(int id, string email) { MiniModel miniModel = await _context.MiniModels.Where(x => x.Email == email) .FirstOrDefaultAsync(x => x.Id == id); var paintList = await _context.MinisToPaint.Where(x => x.MiniModelId == id) .Include(x => x.Paint) .ToListAsync(); var suppliesList = await _context.MinisToSupply.Where(x => x.MiniModelId == id) .Include(x => x.Supply) .ToListAsync(); List <PaintDTO> paints = new List <PaintDTO>(); List <SupplyDTO> supplies = new List <SupplyDTO>(); foreach (var item in paintList) { paints.Add(await _paint.GetPaint(item.Paint.Id, email)); } foreach (var item in suppliesList) { supplies.Add(await _supply.GetSupply(item.Supply.Id, email)); } MiniModelDTO miniDto = new MiniModelDTO() { Id = miniModel.Id, Name = miniModel.Name, Manufacturer = miniModel.Manufacturer, PartNumber = miniModel.PartNumber, Faction = miniModel.Faction, PointCost = miniModel.PointCost, BuildState = miniModel.BuildState.ToString(), Paints = paints, Supplies = supplies }; return(miniDto); }