public async Task <IActionResult> GetMovieByIdAsync([FromRoute] string movieId) { Logger.LogInformation(nameof(GetMovieByIdAsync), "Web Request", HttpContext); if (string.IsNullOrWhiteSpace(movieId)) { throw new ArgumentNullException(nameof(movieId)); } List <Middleware.Validation.ValidationError> list = MovieQueryParameters.ValidateMovieId(movieId); if (list.Count > 0) { Logger.LogWarning(new EventId((int)HttpStatusCode.BadRequest, HttpStatusCode.BadRequest.ToString()), nameof(GetMovieByIdAsync), "Invalid Movie Id", HttpContext); return(ResultHandler.CreateResult(list, Request.Path.ToString() + (Request.QueryString.HasValue ? Request.QueryString.Value : string.Empty))); } return(await DataService.Read <Movie>(Request).ConfigureAwait(false)); }
public async Task <IActionResult> GetMovieByIdAsync([FromRoute] string movieId) { if (string.IsNullOrWhiteSpace(movieId)) { throw new ArgumentNullException(nameof(movieId)); } System.Collections.Generic.List <Middleware.Validation.ValidationError> list = MovieQueryParameters.ValidateMovieId(movieId); if (list.Count > 0) { Logger.LogWarning(new EventId((int)HttpStatusCode.BadRequest, HttpStatusCode.BadRequest.ToString()), nameof(GetMovieByIdAsync), "Invalid Movie Id", HttpContext); return(ResultHandler.CreateResult(list, Request.Path.ToString() + (Request.QueryString.HasValue ? Request.QueryString.Value : string.Empty))); } IActionResult res = await ResultHandler.Handle(dal.GetMovieAsync(movieId), Logger).ConfigureAwait(false); // use cache dal on Cosmos 429 errors if (App.Cache && res is JsonResult jres && jres.StatusCode == 429) { res = await ResultHandler.Handle(App.CacheDal.GetMovieAsync(movieId), Logger).ConfigureAwait(false); } return(res); }