public IEnumerable <IHateoasLink> CreateLinks <TModel>(IEnumerable <Interfaces.IHateoasRegistration <TModel> > registrations, object data) { return(registrations.Select(registration => { var linkBuilder = _linkBuilderFactory.GetLinkBuilder(data); _handlerChain.Process(registration, linkBuilder, data); return linkBuilder; }) .Where(linkBuilder => linkBuilder.Success) .Select(linkBuilder => linkBuilder.Build())); }
public ILinkBuilder Process <TModel>(IHateoasRegistration <TModel> registration, ILinkBuilder resourceBuilder, object data) { if (CanProcess(registration, resourceBuilder)) { ProcessInternal(registration, resourceBuilder, data); } return(_successor != null ? _successor.Process(registration, resourceBuilder, data) : resourceBuilder); }