/// <summary> /// Returns a new query being added a NavigateToSelfLinkQueryStep. /// </summary> /// <param name="hypermediaQuery">this IHypermediaQuery</param> /// <returns>the query</returns> public static IHypermediaQuery FollowSelf(this IHypermediaQuery hypermediaQuery) { var query = hypermediaQuery.Clone(); query.AddStep(new NavigateToSelfLinkQueryStep()); return(query); }
/// <summary> /// Executes the query /// </summary> /// <param name="query">the query</param> /// <returns>result of the query</returns> public Task <CrichtonRepresentor> ExecuteQueryAsync(IHypermediaQuery query) { if (query == null) { throw new ArgumentNullException("query"); } return(query.ExecuteAsync(TransitionRequestHandler)); }
public HypermediaQueryLocation(Type queryType, IHypermediaQuery queryParameter = null) { if (!typeof(HypermediaQueryResult).GetTypeInfo().IsAssignableFrom(queryType)) { throw new HypermediaQueryException($"HypermediaQueryLocation requires a type derived from '{typeof(HypermediaQueryResult)}'"); } QueryType = queryType; QueryParameter = queryParameter; }
/// <summary> /// Returns a new query being added a NavigateToRelativeUrlQueryStep. /// </summary> /// <param name="hypermediaQuery">this IHypermediaQuery</param> /// <param name="url">the url</param> /// <returns>the query</returns> public static IHypermediaQuery WithUrl(this IHypermediaQuery hypermediaQuery, string url) { if (url == null) { throw new ArgumentNullException("url"); } var query = hypermediaQuery.Clone(); query.AddStep(new NavigateToRelativeUrlQueryStep(url)); return(query); }
/// <summary> /// Returns a new query being added a NavigateToTransitionQueryStep. /// </summary> /// <param name="hypermediaQuery">this IHypermediaQuery</param> /// <param name="rel">the rel</param> /// <returns>the query</returns> public static IHypermediaQuery Follow(this IHypermediaQuery hypermediaQuery, string rel) { if (rel == null) { throw new ArgumentNullException("rel"); } var query = hypermediaQuery.Clone(); query.AddStep(new NavigateToTransitionQueryStep(rel)); return(query); }
/// <summary> /// Returns a new query being added a NavigateToRepresentorQueryStep. /// </summary> /// <param name="hypermediaQuery">this IHypermediaQuery</param> /// <param name="representor">the representor</param> /// <returns>the query</returns> public static IHypermediaQuery WithRepresentor(this IHypermediaQuery hypermediaQuery, CrichtonRepresentor representor) { if (representor == null) { throw new ArgumentNullException("representor"); } var query = hypermediaQuery.Clone(); query.AddStep(new NavigateToRepresentorQueryStep(representor)); return(query); }
/// <summary> /// Returns a new query being added a PostToTransitionQueryStep. /// </summary> /// <param name="hypermediaQuery">this IHypermediaQuery</param> /// <param name="rel">the rel</param> /// <param name="data">the data</param> /// <returns>the query</returns> public static IHypermediaQuery FollowWithData(this IHypermediaQuery hypermediaQuery, string rel, object data) { if (rel == null) { throw new ArgumentNullException("rel"); } if (data == null) { throw new ArgumentNullException("data"); } var query = hypermediaQuery.Clone(); query.AddStep(new PostToTransitionQueryStep(rel, data)); return(query); }
/// <summary> /// Base class for query results. /// </summary> /// <param name="query">The query used to retrieve this result.</param> protected HypermediaQueryResult(IHypermediaQuery query) : base(query) { Query = query; }
public void AddQuery(string relation, IHypermediaQuery query) { Queries.Add(relation, query); }
/// <summary> /// Returns a 201 Created and puts a Location to the Query result in the header. /// </summary> /// <param name="controller"></param> /// <param name="queryType">The type of the QueryResult which will be returned when following the Location header.</param> /// <param name="queryParameter">The query which was requested. Used by the Formatter to produce the Location header.</param> /// <returns></returns> public static ActionResult CreatedQuery(this ControllerBase controller, Type queryType, IHypermediaQuery queryParameter = null) { return(controller.Ok(new HypermediaQueryLocation(queryType, queryParameter))); }
public void Init() { query = MockRepository.GenerateMock <IHypermediaQuery>(); Fixture = GetFixture(); }
public HypermediaObjectQueryReference(Type hypermediaObjectType, IHypermediaQuery query, object key = null) : base(hypermediaObjectType, key) { Query = query; }
/// <summary> /// Constructor for HypermediaObject which are acces using a query. Required to propperly build the self Link. /// </summary> protected HypermediaObject(IHypermediaQuery query) { Init(); // hypemedia object is a queryresult so it needs a selflink with query Links.Add(DefaultHypermediaRelations.Self, new HypermediaObjectQueryReference(GetType(), query)); }
public void Init() { sut = new HypermediaQuery(); Fixture = GetFixture(); }