private static OperationLinkBuilder GetDefaultOperationLinkBuilder(IEdmOperation operation) { OperationLinkBuilder linkBuilder = null; if (operation.Parameters != null) { if (operation.Parameters.First().Type.IsEntity()) { if (operation is IEdmAction) { linkBuilder = new OperationLinkBuilder( (ResourceContext resourceContext) => resourceContext.GenerateActionLink(operation), followsConventions: true); } else { linkBuilder = new OperationLinkBuilder( (ResourceContext resourceContext) => resourceContext.GenerateFunctionLink(operation), followsConventions: true); } } else if (operation.Parameters.First().Type.IsCollection()) { if (operation is IEdmAction) { linkBuilder = new OperationLinkBuilder( (ResourceSetContext reseourceSetContext) => reseourceSetContext.GenerateActionLink(operation), followsConventions: true); } else { linkBuilder = new OperationLinkBuilder( (ResourceSetContext reseourceSetContext) => reseourceSetContext.GenerateFunctionLink(operation), followsConventions: true); } } } return(linkBuilder); }
public static OperationLinkBuilder GetOperationLinkBuilder(this IEdmModel model, IEdmOperation operation) { if (model == null) { throw Error.ArgumentNull("model"); } if (operation == null) { throw Error.ArgumentNull("operation"); } OperationLinkBuilder linkBuilder = model.GetAnnotationValue <OperationLinkBuilder>(operation); if (linkBuilder == null) { linkBuilder = GetDefaultOperationLinkBuilder(operation); model.SetOperationLinkBuilder(operation, linkBuilder); } return(linkBuilder); }
public static void SetOperationLinkBuilder(this IEdmModel model, IEdmOperation operation, OperationLinkBuilder operationLinkBuilder) { if (model == null) { throw Error.ArgumentNull("model"); } model.SetAnnotationValue(operation, operationLinkBuilder); }