/// <summary> /// Get the signature of the endpoint, for equality/grouping purposes /// </summary> /// <param name="caller"></param> /// <returns></returns> public string GetSignature(AspNetCoreHttpController caller) { return($"{ToString(caller)}(${string.Join(", ", GetParameters().Select(x => x.ToString()))}"); }
/// <summary> /// Returns a string that represents the current object under the context of the caller /// </summary> /// <param name="caller"></param> /// <returns></returns> public string ToString(AspNetCoreHttpController caller) { string namespaceVersion = $@"{(caller.NamespaceVersion != null ? $"{caller.NamespaceVersion}." : "")}{(caller.NamespaceSuffix != null ? $"{caller.NamespaceSuffix}." : string.Empty)}"; return($"{namespaceVersion}{caller.Name}.{FormattedName}"); }
/// <summary> /// Full route template for the endpoint /// </summary> public HttpRoute GetFullRoute(AspNetCoreHttpController caller) { return(caller.Route.Merge(Route)); }
/// <summary> /// Get all route constraints associated with the endpoint, with the caller being accounted for /// </summary> /// <param name="caller"></param> /// <returns></returns> public IEnumerable <RouteConstraint> GetRouteConstraints(AspNetCoreHttpController caller) { return(caller.Route.Merge(Route).Constraints.Where(x => x.GetType() != typeof(ApiVersionContraint))); }
/// <summary> /// Creates an endpoint assosicated with the controller /// </summary> /// <param name="parent"></param> public AspNetCoreHttpEndpoint(AspNetCoreHttpController parent) { Parent = parent; }