public void OnActionExecuted(ActionExecutedContext context) { if (_context.AnyNotification) { var responseObj = new ResultWithErrors(_context.GetNotifications()); if (ExisteNotFound(responseObj)) { context.Result = new NotFoundObjectResult(responseObj) { ContentTypes = { "application/problem+json" } }; context.Canceled = true; } else { context.Result = new BadRequestObjectResult(responseObj) { ContentTypes = { "application/problem+json" } }; context.Canceled = true; } return; } if (!context.ModelState.IsValid) { context.Result = new BadRequestObjectResult(new ResultWithErrors(context.ModelState.Values.SelectMany(v => v.Errors.Select(x => new Notification(string.Empty, nameof(Messages.InternalError), string.Empty, x.ErrorMessage, 400))))) { ContentTypes = { "application/problem+json" } }; context.Canceled = true; } }
private TestSchemaCache(ResultWithErrors <ResourceTypeSchema[]> schemaResults) { if (schemaResults.Errors.Any()) { var errors = schemaResults.Errors .Where(err => !SchemaLoader.CircularReferenceSchemas.Contains(err.Target)) .ToArray(); if (errors.Any()) { var errorsJson = JsonConvert.SerializeObject(errors, Formatting.Indented); throw new InvalidOperationException($"Found errors building normalized cache: {errorsJson}"); } } this.schemaCache = schemaResults.Value .GroupByOrdinalInsensitively(schema => schema.ResourceProviderNamespace) .ToDictionary( keySelector: grouping => grouping.Key, elementSelector: grouping => grouping.ToLookupOrdinalInsensitively(schema => schema.FullyQualifiedResourceType), comparer: StringComparer.OrdinalIgnoreCase); }
private bool ExisteNotFound(ResultWithErrors responseObj) { return(responseObj.Erros.Any(e => e.Status == StatusCodes.Status404NotFound)); }