public static IHypermediaBuilder <TDocument> AddRouteLink <TDocument>(this IHypermediaBuilder <TDocument> builder, string rel, string routeName, Func <TDocument, bool> conditionHandler) where TDocument : IHypermediaDocument { ValidateCommonParameters(builder, rel, routeName); return(builder.AddLinksPerCondition(conditionHandler, b => DoAddRouteLink(b, rel, routeName))); }
public static IHypermediaBuilder <TDocument> AddRouteTemplate <TDocument>(this IHypermediaBuilder <TDocument> builder, string rel, string routeName) where TDocument : IHypermediaDocument { if (builder == null) { throw new ArgumentNullException(nameof(builder)); } if (string.IsNullOrWhiteSpace(rel)) { throw new ArgumentException($"Parameter '{nameof(rel)}' must not be null or empty."); } if (string.IsNullOrWhiteSpace(routeName)) { throw new ArgumentException($"Parameter '{nameof(routeName)}' must not be null or empty."); } var link = builder.Service.GetLink(LinkRequestBuilder .CreateWithRouteName(routeName) .SetIsTemplated()); builder.AddLink(rel, link); return(builder); }
public static IHypermediaBuilder <TDocument> AddRouteLink <TDocument>(this IHypermediaBuilder <TDocument> builder, string rel, string routeName) where TDocument : IHypermediaDocument { ValidateCommonParameters(builder, rel, routeName); return(DoAddRouteLink(builder, rel, routeName)); }
public HypermediaConfiguration( ILatestApiVersion version, IHypermediaAppender <ApiError> errorAppender, IHypermediaAppender <ApiVersion> versionAppender, IHypermediaAppender <PagedList <ApiVersion> > versionPagedAppender, IHypermediaAppender <Job> jobAppender, IHypermediaAppender <PagedList <Job> > jobPagedAppender, IHypermediaAppender <JobByDescriptionPagedList> jobByDescriptionPagedAppender, IHypermediaAppender <Schedule> scheduleAppender, IHypermediaAppender <PagedList <Schedule> > schedulePagedAppender, IHypermediaAppender <ScheduleByJobPagedList> scheduleByJobPagedAppender, IHypermediaAppender <ScheduleByDescriptionPagedList> scheduleByDescriptionPagedAppender) { _version = version; _errorAppender = errorAppender; _versionAppender = versionAppender; _versionPagedAppender = versionPagedAppender; _jobAppender = jobAppender; _jobPagedAppender = jobPagedAppender; _jobByDescriptionPagedAppender = jobByDescriptionPagedAppender; _scheduleAppender = scheduleAppender; _schedulePagedAppender = schedulePagedAppender; _scheduleByJobPagedAppender = scheduleByJobPagedAppender; _scheduleByDescriptionPagedAppender = scheduleByDescriptionPagedAppender; _curie = new CuriesLink(Curies.Jobbie, $"https://jobbie-api.com/v{_version}/docs/{{rel}}"); _builder = Hal.Hypermedia.CreateBuilder(); RegisterApiError(); RegisterVersion(); RegisterJob(); RegisterSchedule(); }
public static IHypermediaBuilder <TDocument> AddLink <TDocument>(this IHypermediaBuilder <TDocument> builder, string rel, string href, Func <TDocument, bool> conditionHandler) where TDocument : IHypermediaDocument { if (builder == null) { throw new ArgumentNullException(nameof(builder)); } if (string.IsNullOrWhiteSpace(rel)) { throw new ArgumentException($"Parameter '{nameof(rel)}' must not be null or empty."); } if (string.IsNullOrWhiteSpace(href)) { throw new ArgumentException($"Parameter '{nameof(href)}' must not be null or empty."); } if (conditionHandler == null) { throw new ArgumentNullException(nameof(conditionHandler)); } return(DoAddLinksPerCondition(builder, conditionHandler, b => DoAddLink(b, rel, href))); }
public static IHypermediaBuilder <TDocument> AddLink <TDocument>(this IHypermediaBuilder <TDocument> builder, string rel, string href, string method) where TDocument : IHypermediaDocument { if (builder == null) { throw new ArgumentNullException(nameof(builder)); } if (string.IsNullOrWhiteSpace(rel)) { throw new ArgumentException($"Parameter '{nameof(rel)}' must not be null or empty."); } if (string.IsNullOrWhiteSpace(href)) { throw new ArgumentException($"Parameter '{nameof(href)}' must not be null or empty."); } if (string.IsNullOrWhiteSpace(method)) { throw new ArgumentException($"Parameter '{nameof(method)}' must not be null or empty."); } return(DoAddLink(builder, rel, href, method)); }
private static IHypermediaBuilder <TDocument> DoAddLink <TDocument>(IHypermediaBuilder <TDocument> builder, string rel, string href, string method) where TDocument : IHypermediaDocument { var link = new HttpLink(href, method); builder.AddLink(rel, link); return(builder); }
private static IHypermediaBuilder <TDocument> DoAddRouteLink <TDocument>(IHypermediaBuilder <TDocument> builder, string rel, string routeName) where TDocument : IHypermediaDocument { var link = builder.Service.GetLink(LinkRequestBuilder .CreateWithRouteName(routeName)); builder.AddLink(rel, link); return(builder); }
public HypermediaBuilderExtensionTests() { mockService = new Mock <IHypermediaService>(); mockSut = new Mock <IHypermediaBuilder <IHypermediaDocument> >(); mockSut .Setup(x => x.Service) .Returns(mockService.Object); sut = mockSut.Object; }
public UserController(IUserApplicationService userApplication, ILog logger, IPaginationHelper paginationHelper, IHypermediaBuilder hypermediaBuilder) { _userApplication = userApplication; _logger = logger; _paginationHelper = paginationHelper; _hypermediaBuilder = hypermediaBuilder; }
public static IHypermediaBuilder <TDocument> AddRouteLink <TDocument>(this IHypermediaBuilder <TDocument> builder, string rel, string routeName, object routeValues) where TDocument : IHypermediaDocument { ValidateCommonParameters(builder, rel, routeName); if (routeValues == null) { throw new ArgumentNullException(nameof(routeValues)); } return(DoAddRouteLink(builder, rel, routeName, routeValues)); }
public static IHypermediaBuilder <TDocument> AddRouteLink <TDocument>(this IHypermediaBuilder <TDocument> builder, string rel, string routeName, object routeValues, Func <TDocument, bool> conditionHandler) where TDocument : IHypermediaDocument { ValidateCommonParameters(builder, rel, routeName); if (routeValues == null) { throw new ArgumentNullException(nameof(routeValues)); } return(builder.AddLinksPerCondition(conditionHandler, b => DoAddRouteLink(b, rel, routeName, routeValues))); }
public HypermediaBuilderExtensionTests() { mockService = new Mock <IHypermediaService>(); mockService .Setup(x => x.GetLink(It.Is <LinkRequest>(y => y.GetRouteName() == TestRouteName))) .Returns(new Link(TestHref)); mockSut = new Mock <IHypermediaBuilder <IHypermediaDocument> >(); mockSut .Setup(x => x.Service) .Returns(mockService.Object); sut = mockSut.Object; }
public static void Register <T>(this IHypermediaBuilder builder, Link <T> selfLink, params Link[] links) where T : class, IResource { if (selfLink == null) { throw new ArgumentNullException("selfLink"); } builder.RegisterSelf(selfLink); builder.RegisterLinks <T>(links); builder.RegisterAppender(new ActionBasedHypermediaAppender <T>( (resource, configured) => { resource.Links = configured.ToList(); })); }
public static void Register <T>(this IHypermediaBuilder builder, Link <T> selfLink, IHypermediaAppender <T> appender, params Link[] links) where T : class, IResource { if (selfLink == null) { throw new ArgumentNullException("selfLink"); } if (appender == null) { throw new ArgumentNullException("appender"); } builder.RegisterSelf(selfLink); builder.RegisterAppender(appender); builder.RegisterLinks <T>(links); }
public static void Register <T>(this IHypermediaBuilder builder, Link <T> selfLink, Action <T, IEnumerable <Link> > appender, params Link[] links) where T : class, IResource { if (selfLink == null) { throw new ArgumentNullException(nameof(selfLink)); } if (appender == null) { throw new ArgumentNullException(nameof(appender)); } builder.RegisterSelf(selfLink); builder.RegisterAppender(new ActionBasedHypermediaAppender <T>(appender)); builder.RegisterLinks <T>(links); }
public static IHypermediaBuilder <TDocument> AddLinksToChild <TDocument>(this IHypermediaBuilder <TDocument> builder, Action <TDocument, IHypermediaService> childHandler) where TDocument : IHypermediaDocument { if (builder == null) { throw new ArgumentNullException(nameof(builder)); } if (childHandler == null) { throw new ArgumentNullException(nameof(childHandler)); } childHandler.Invoke(builder.Document, builder.Service); return(builder); }
private static void ValidateCommonParameters <TDocument>(IHypermediaBuilder <TDocument> builder, string rel, string routeName) where TDocument : IHypermediaDocument { if (builder == null) { throw new ArgumentNullException(nameof(builder)); } if (string.IsNullOrWhiteSpace(rel)) { throw new ArgumentException($"Parameter '{nameof(rel)}' must not be null or empty."); } if (string.IsNullOrWhiteSpace(routeName)) { throw new ArgumentException($"Parameter '{nameof(routeName)}' must not be null or empty."); } }
private static IHypermediaBuilder <TDocument> DoAddLinksPerCondition <TDocument>(IHypermediaBuilder <TDocument> builder, Func <TDocument, bool> conditionHandler, Action <IHypermediaBuilder <TDocument> > builderHandler) where TDocument : IHypermediaDocument { if (!conditionHandler.Invoke(builder.Document)) { return(builder); } builderHandler.Invoke(builder); return(builder); }
public static IHypermediaBuilder <TDocument> AddLinksPerCondition <TDocument>(this IHypermediaBuilder <TDocument> builder, Func <TDocument, bool> conditionHandler, Action <IHypermediaBuilder <TDocument> > builderHandler) where TDocument : IHypermediaDocument { if (builder == null) { throw new ArgumentNullException(nameof(builder)); } if (conditionHandler == null) { throw new ArgumentNullException(nameof(conditionHandler)); } if (builderHandler == null) { throw new ArgumentNullException(nameof(builderHandler)); } return(DoAddLinksPerCondition(builder, conditionHandler, builderHandler)); }
public HypermediaBuilderExtensionTests() { mockSut = new Mock <IHypermediaBuilder <IHypermediaDocument> >(); sut = mockSut.Object; }
public static IHypermediaBuilder <TDocument> AddSelfRouteLink <TDocument>(this IHypermediaBuilder <TDocument> builder, string routeName, object routeValues, Func <TDocument, bool> conditionHandler) where TDocument : IHypermediaDocument { return(AddRouteLink(builder, SelfRel, routeName, routeValues, conditionHandler)); }
public static IHypermediaBuilder <TDocument> AddSelfRouteLink <TDocument>(this IHypermediaBuilder <TDocument> builder, string routeName) where TDocument : IHypermediaDocument { return(AddRouteLink(builder, SelfRel, routeName)); }
public KeyController(IUserApplicationService userApplication, IHypermediaBuilder hypermediaBuilder) { _userApplication = userApplication; _hypermediaBuilder = hypermediaBuilder; }