private void MapToRepresentation(Exception e, HttpRequestMessage req) { if (e is WithContextNOSException) { ArgumentsRepresentation.Format format = e is BadPersistArgumentsException ? ArgumentsRepresentation.Format.Full : ArgumentsRepresentation.Format.MembersOnly; RestControlFlags flags = e is BadPersistArgumentsException ? ((BadPersistArgumentsException)e).Flags : RestControlFlags.DefaultFlags(); var contextNosException = e as WithContextNOSException; if (contextNosException.Contexts.Any(c => c.ErrorCause == Cause.Disabled || c.ErrorCause == Cause.Immutable)) { Representation = NullRepresentation.Create(); } else if (e is BadPersistArgumentsException && contextNosException.ContextFacade != null && contextNosException.Contexts.Any()) { Representation = ArgumentsRepresentation.Create(oidStrategy, req, contextNosException.ContextFacade, contextNosException.Contexts, format, flags, UriMtHelper.GetJsonMediaType(RepresentationTypes.BadArguments)); } else if (contextNosException.ContextFacade != null) { Representation = ArgumentsRepresentation.Create(oidStrategy, req, contextNosException.ContextFacade, format, flags, UriMtHelper.GetJsonMediaType(RepresentationTypes.BadArguments)); } else if (contextNosException.Contexts.Any()) { Representation = ArgumentsRepresentation.Create(oidStrategy, req, contextNosException.Contexts, format, flags, UriMtHelper.GetJsonMediaType(RepresentationTypes.BadArguments)); } else { Representation = NullRepresentation.Create(); } } else if (e is ResourceNotFoundNOSException || e is NotAllowedNOSException || e is PreconditionFailedNOSException || e is PreconditionMissingNOSException || e is NoContentNOSException) { Representation = NullRepresentation.Create(); } else { Representation = ErrorRepresentation.Create(oidStrategy, e); } }
WithContextNOSException wce when wce.Contexts.Any() => ArgumentsRepresentation.Create(oidStrategy, frameworkFacade, req, wce.Contexts, ArgumentsRepresentation.Format.MembersOnly, RestControlFlags.DefaultFlags(), UriMtHelper.GetJsonMediaType(RepresentationTypes.BadArguments)),