public MutateInResult(IMutateInResult inner) { // ReSharper disable once ConditionIsAlwaysTrueOrFalse if (inner == null) { ThrowHelper.ThrowArgumentNullException(nameof(inner)); } if (inner is not ITypeSerializerProvider) { ThrowHelper.ThrowNotSupportedException("The class implementing IMutateInResult must also implement ITypeSerializerProvider."); } _inner = inner; }
public static TContent ContentAs <TDocument, TContent>(this IMutateInResult <TDocument> result, Expression <Func <TDocument, TContent> > path) { // ReSharper disable ConditionIsAlwaysTrueOrFalse if (result == null) { ThrowHelper.ThrowArgumentNullException(nameof(result)); } if (path == null) { ThrowHelper.ThrowArgumentNullException(nameof(path)); } // ReSharper restore ConditionIsAlwaysTrueOrFalse var pathString = SubDocumentPathExpressionVisitor.GetPath(result, path); var index = result.IndexOf(pathString); if (index < 0) { ThrowHelper.ThrowArgumentException(nameof(path), $"Path '{pathString}' is not found."); } return(result.ContentAs <TContent>(index)); }