public async Task <IViewComponentResult> InvokeAsync(IModelRepository _repository) { try { var books = await _repository.Books(); var user = await _manager.GetUserAsync((ClaimsPrincipal)User); var current = books.FirstOrDefault(b => b.IsCurrent); CheckoutViewModel vm = new CheckoutViewModel { Book = current, Member = user }; return(View(vm)); } catch (Exception ex) { _logger.LogError($"Failed to retrieve books: {ex.Message}"); return(View(new Book())); } }