public PreprocessResult PreprocessContent(object @object, ApiResource resource, Uri requestUri, JsonApiConfiguration config) { var result = new PreprocessResult { JsonConverters = JsonConverters }; if (requestUri == null) { throw new ArgumentNullException(nameof(requestUri)); } try { var error = GetAsError(@object); if (error != null) { result.ErrorContent = error; return(result); } var dataObject = @object; if (QueryContext != null && !QueryContext.IsHandledQuery) { if (QueryContext.Filter != null) { dataObject = Query.ApplyFiltering(dataObject, QueryContext.Filter, resource); } if (QueryContext.Sort != null) { dataObject = Query.ApplySorting(dataObject, QueryContext.Sort, resource); } if (QueryContext.Pagination != null) { dataObject = Query.ApplyPagination(dataObject, QueryContext.Pagination, resource); } } result.ResourceSerializer = new ResourceSerializer( value: dataObject, type: resource, baseUrl: requestUri, propertyNameConverter: config.PropertyNameConverter, urlBuilder: UrlPathBuilder, paginationContext: QueryContext?.Pagination, includeContext: QueryContext?.Include, fieldsetContext: QueryContext?.Fieldset); } catch (Exception ex) { result.ErrorContent = GetAsError(ex); } return(result); }
public static JToken Serialize(PreprocessResult result) { if (result.ErrorContent != null) { return new ErrorSerializer().Serialize(result.ErrorContent); } var jsonSerializer = GetJsonSerializer(result.JsonConverters); return result.ResourceSerializer.Serialize(jsonSerializer); }
public PreprocessResult PreprocessContent(object @object, ApiResource resource, Uri requestUri) { var result = new PreprocessResult { JsonConverters = JsonConverters }; if (requestUri == null) { throw new ArgumentNullException(nameof(requestUri)); } try { var error = GetAsError(@object); if (error != null) { result.ErrorContent = error; return(result); } var dataObject = @object; if (QueryContext?.Filtering != null) { dataObject = Query.ApplyFiltering(dataObject, QueryContext.Filtering, resource); } if (QueryContext?.Sorting != null) { dataObject = Query.ApplySorting(dataObject, QueryContext.Sorting, resource); } if (QueryContext?.Pagination != null) { dataObject = Query.ApplyPagination(dataObject, QueryContext.Pagination, resource); } var serializer = new ResourceSerializer( value: dataObject, type: resource, baseUrl: requestUri, urlBuilder: UrlPathBuilder, paginationContext: QueryContext?.Pagination, includingContext: QueryContext?.Including); result.ResourceSerializer = serializer; } catch (Exception ex) { result.ErrorContent = GetAsError(ex); } return(result); }
public static JToken Serialize(PreprocessResult result) { if (result.ErrorContent != null) { return(new ErrorSerializer().Serialize(result.ErrorContent)); } var jsonSerializer = GetJsonSerializer(result.JsonConverters); return(result.ResourceSerializer.Serialize(jsonSerializer)); }
public PreprocessResult PreprocessContent(object @object, ApiResource resource, Uri requestUri) { var result = new PreprocessResult { JsonConverters = JsonConverters }; if (requestUri == null) { throw new ArgumentNullException(nameof(requestUri)); } try { var error = GetAsError(@object); if (error != null) { result.ErrorContent = error; return result; } var dataObject = @object; if (QueryContext?.Filtering != null) { dataObject = Query.ApplyFiltering(dataObject, QueryContext.Filtering, resource); } if (QueryContext?.Sorting != null) { dataObject = Query.ApplySorting(dataObject, QueryContext.Sorting, resource); } if (QueryContext?.Pagination != null) { dataObject = Query.ApplyPagination(dataObject, QueryContext.Pagination, resource); } var serializer = new ResourceSerializer( value: dataObject, type: resource, baseUrl: requestUri, urlBuilder: UrlPathBuilder, paginationContext: QueryContext?.Pagination); result.ResourceSerializer = serializer; } catch (Exception ex) { result.ErrorContent = GetAsError(ex); } return result; }