public async Task <ActionResult <Score> > GetScoreAsync([Required] string contextId, [Required] string lineItemId, [Required] string scoreId) { try { _logger.LogDebug($"Entering {nameof(GetScoreAsync)}."); try { var request = new GetScoreRequest(contextId, lineItemId, scoreId); return(await OnGetScoreAsync(request).ConfigureAwait(false)); } catch (Exception ex) { _logger.LogError(ex, "Cannot get score."); return(StatusCode(StatusCodes.Status500InternalServerError, new ProblemDetails { Title = ex.Message, Detail = ex.StackTrace })); } } finally { _logger.LogDebug($"Exiting {nameof(GetScoreAsync)}."); } }
/// <summary> /// Returns a score. /// </summary> /// <param name="request">The request parameters.</param> /// <returns></returns> protected abstract Task <ActionResult <Score> > OnGetScoreAsync(GetScoreRequest request);