public async Task <ActionResult <ICollection <CardResponse> > > GetDeck([FromRoute] Guid deckId) { try { var userId = this.GetUserId(); if (!await deckRepository.IsUsersOrStandardDeckAsync(deckId, userId).ConfigureAwait(false)) { return(Forbid()); } var deck = await manager.GetAllCardsFromDeckAsync(deckId).ConfigureAwait(false); if (deck == null) { return(NotFound()); } return(Ok(deck.Select(CardResponse.FromCard))); } catch (Exception e) { return(StatusCode(500, e.Message)); } ; }