public ServiceResult <ContentType> BuildAppropiateErrorResult <ContentType>(JsonErrors?sensitiveJsonErrors, JsonErrors?insensitiveJsonErrors = null) { if (sensitiveJsonErrors is null && insensitiveJsonErrors is null) { return(ServiceResult <ContentType> .Failure()); } if (!ReferenceEquals(sensitiveJsonErrors, null) && getIncludeErrorDetails()) { if (!ReferenceEquals(insensitiveJsonErrors, null)) { var insensitiveJsonErrorsCount = insensitiveJsonErrors.Count; for (var index = 0; index < insensitiveJsonErrorsCount; index++) { var jsonError = insensitiveJsonErrors[index]; sensitiveJsonErrors.Insert(index, jsonError); } } return(ServiceResult <ContentType> .Failure(sensitiveJsonErrors)); } return(ServiceResult <ContentType> .Failure(insensitiveJsonErrors)); }
public ServiceResultDatransject(bool succeeded, object?content, JsonErrors?errors, Type declaredType, FormatterCollection <IOutputFormatter>?formatters, MediaTypeCollection?contentTypes, int?statusCode) { Succeeded = succeeded; Content = content; Errors = errors; DeclaredType = declaredType; Formatters = formatters; ContentTypes = contentTypes; StatusCode = statusCode; }
/// <summary> /// Makes a copy of <see cref="jsonErrors"/>. /// </summary> public static JsonErrors DeepCopy(this JsonErrors?jsonErrors) { var newJsonErrors = new JsonErrors(); if (jsonErrors?.Error is null) { return(newJsonErrors); } foreach (var error in jsonErrors.Errors) { newJsonErrors.Errors.Add(new JsonError(error.Error, error.ErrorCode)); } return(newJsonErrors); }
public static Exception?ToSingleOrAggregatedException(this JsonErrors?jsonErrors) { if (jsonErrors is null) { return(null); } var errors = jsonErrors.Errors; var errorsCount = errors.Count; if (errorsCount == 0) { return(null); } else if (errorsCount == 1) { return(errors[0].Error); } return(new AggregateException(StringResources.MoreThanOneExcpetionOccuredMessage, errors.Select(x => x.Error) .ToArray())); }
/// <summary> /// Creates a service result factory for creating a customized service result. /// </summary> /// <typeparam name="ContentType"></typeparam> /// <param name="error"></param> /// <returns></returns> public static IServiceResultPostConfiguration <ServiceResult <ContentType>, ContentType> ToServiceResultFactory <ContentType>(this JsonErrors?errors) { var serviceResult = ServiceResult <ContentType> .Failure(errors); return(new ServiceResultPostConfiguration <ServiceResult <ContentType>, ContentType>(serviceResult, serviceResult)); }
/// <summary> /// Creates a servce result from provided <paramref name="error"/>. /// </summary> /// <typeparam name="T"></typeparam> /// <param name="error"></param> /// <returns></returns> public static ServiceResult <T> ToServiceResult <T>(this JsonErrors?errors) => ServiceResult <T> .Failure(errors);
/// <summary> /// Creates a servce result from provided <paramref name="errors"/>. /// </summary> /// <typeparam name="T"></typeparam> /// <param name="error"></param> /// <returns></returns> public static ServiceResult ToServiceResult(this JsonErrors?errors) => ServiceResult <object> .Failure(errors);
public static string ToStringOrDefaultMessage(this JsonErrors?jsonErrors) => jsonErrors?.ToString() ?? StringResources.DefaultErrorMessage;
public static Exception ToSingleOrAggregatedOrDefaultException(this JsonErrors?jsonErrors) => jsonErrors.ToSingleOrAggregatedException() ?? new Exception(StringResources.DefaultErrorMessage);
public ServiceResult <ContentType> LogCriticalThenBuildAppropiateError <ContentType>(JsonErrors?sensitiveJsonErrors, string?insensitiveErrorMessage = null) { var insensitiveJsonErrors = insensitiveErrorMessage.ToJsonErrors(); return(LogCriticalThenBuildAppropiateError <ContentType>(sensitiveJsonErrors, insensitiveJsonErrors)); }
public ServiceResult <ContentType> LogCriticalThenBuildAppropiateError <ContentType>(JsonErrors?sensitiveJsonErrors, JsonErrors?insensitiveJsonErrors = null) => LogThenBuildAppropiateError <ContentType>(LogLevel.Critical, sensitiveJsonErrors, insensitiveJsonErrors);
public ServiceResult <ContentType> LogThenBuildAppropiateError <ContentType>(LogLevel logLevel, JsonErrors?sensitiveJsonErrors, JsonErrors?insensitiveJsonErrors = null) { var appropiateErrorResult = BuildAppropiateErrorResult <ContentType>(sensitiveJsonErrors, insensitiveJsonErrors); if (!ReferenceEquals(sensitiveJsonErrors, null) || !ReferenceEquals(insensitiveJsonErrors, null)) { logger?.Log(logLevel, sensitiveJsonErrors.ToSingleOrAggregatedOrDefaultException(), insensitiveJsonErrors.ToStringOrDefaultMessage()); } return(appropiateErrorResult); }
public static ServiceResult <TargetContentType> CopyButFailedIfFailed <SourceContentType, TargetContentType>(this IServiceResult <SourceContentType> result, JsonErrors?errors = null) { result = result ?? throw new ArgumentNullException(nameof(result)); if (!result.Succeeded) { return(result.CopyButFailed <SourceContentType, TargetContentType>(errors)); } return(result.copy <SourceContentType, TargetContentType>()); }
public static ServiceResult <TargetContentType> CopyButFailed <SourceContentType, TargetContentType>(this IServiceResult <SourceContentType> result, JsonErrors?errors = null) { var copiedResult = result.copy <SourceContentType, TargetContentType>(); IMutableServiceResult mutableServiceResult = copiedResult; mutableServiceResult.Succeeded = false; if (errors != null) { mutableServiceResult.Errors = errors; } return(copiedResult); }