public async Task <int> PopulateJumpCache(int fromId, int toId) { var route = _navigatorDbContext.Routes.FirstOrDefault(x => x.From == fromId && x.To == toId); if (route == null) { route = new Route(fromId, toId); try { if (fromId != toId) { var isAnySystemAWormhole = IsAnySystemAWormhole(new List <int> { fromId, toId }); if (isAnySystemAWormhole == false) { var result = await _api.Routes.GetRouteV1Async(route.From, route.To); route.NavigatedSystems.AddRange(result.Model); var discoveredRoutes = ComputeRoutes(route); _navigatorDbContext.Routes.AddRange(discoveredRoutes); await _navigatorDbContext.SaveChangesAsync(); } } } catch (Exception ex) { Console.Write(ex); } } return(await Task.FromResult(route.NavigatedSystems.Count)); }