private WarehouseModel AddRecursiveWarehouseHierarchy(WarehouseModel warehouse) { try { var warehouseModel = Mapper.Map <WarehouseModel, WarehouseDTO>(warehouse); warehouse.Trucks = Mapper.Map <List <TruckDTO>, List <TruckModel> >(_truckRepository.FindByParent(warehouseModel)); warehouse.NextHops = Mapper.Map <List <WarehouseDTO>, List <WarehouseModel> >(_warehouseRepository.FindByParent(warehouseModel)); foreach (WarehouseModel wh in warehouse.NextHops) { AddRecursiveWarehouseHierarchy(wh); } return(warehouse); } catch (Exception ex) { throw new BLException("Error loading warehouse (recursion)", ex); } }