/// <inheritdoc/> ITransformationMap <TCollection, TElement> IElementTransformationMap <TCollection, TElement> .LinkElements( string relation, Func <TElement, ILinkData?> selector) { Links[relation] = new ManyLinkInstruction <TCollection>(c => c.Select(selector)); return(this); }
/// <inheritdoc/> ITransformationMap <TCollection, TElement> ITransformationMap <TCollection, TElement> .Link <TMember>( string relation, Func <TCollection, IEnumerable <TMember> > collectionSelector, Func <TCollection, TMember, ILinkData?> linkSelector) { Links[relation] = new ManyLinkInstruction <TCollection>(t => collectionSelector(t).Select(tm => linkSelector(t, tm))); return(this); }
/// <inheritdoc/> ITransformationMap <TCollection, TElement> IElementTransformationMap <TCollection, TElement> .EmbedElements( string relation, Func <TElement, ILinkData?> selector) { Links[relation] = new ManyLinkInstruction <TCollection>(c => c.Select(selector)); Embeds.Add(new ManyEmbedInstruction <TCollection, TElement>(relation, "[*]", _ => _)); return(this); }
/// <inheritdoc/> ITransformationMap <TCollection, TElement> IElementTransformationMap <TCollection, TElement> .LinkElements( string relation, Func <TElement, ILinkData> selector) { if (relation is null) { throw new ArgumentNullException(nameof(relation)); } if (selector is null) { throw new ArgumentNullException(nameof(selector)); } Links[relation] = new ManyLinkInstruction <TCollection>(c => c.Select(selector)); return(this); }
/// <inheritdoc/> ITransformationMap <TCollection, TElement> ITransformationMap <TCollection, TElement> .Link <TMember>( string relation, Func <TCollection, IEnumerable <TMember> > collectionSelector, Func <TCollection, TMember, ILinkData> linkSelector) { if (relation is null) { throw new ArgumentNullException(nameof(relation)); } if (collectionSelector is null) { throw new ArgumentNullException(nameof(collectionSelector)); } Links[relation] = new ManyLinkInstruction <TCollection>(t => collectionSelector(t).Select(tm => linkSelector(t, tm))); return(this); }