Пример #1
0
 /// <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);
 }
Пример #2
0
 /// <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);
 }
Пример #3
0
            /// <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);
            }