'Making OData call using Refit

I have an OData query as below.

http://localhost:65202/api/odata/StaffBookings?$select=ID&$filter=Staff/ID eq 1&$expand=Staff($select=ID),Event($select=ID,EventDate;$expand=Client($select=ID,Company))

How can I call it using Refit?

Thanks

Regards



Solution 1:[1]

You can use the following OdataParameters class to set the properties. Then add OdataParameters as a parameter in your function signature.

[Get("/v1/odata/{resource}")]
Task<HttpResponseMessage> GetAdHocDataAsync(
  [Header("Authorization")] string bearerAuthorization,
  string resource,
  OdataParameters odataParams
);

Here's the OdataParameters class you can modify to for your needs

public class OdataParameters
{
    private readonly bool _count;

    public OdataParameters(bool count = false, int? top = null, int? skip = null, string filter = null,
        string select = null, string orderBy = null)
    {
        _count = count;
        Top = top;
        Skip = skip;
        Filter = filter;
        Select = select;
        OrderBy = orderBy;
    }

    [AliasAs("$count")] public string Count => _count ? "true" : null;

    [AliasAs("$top")] public int? Top { get; }

    [AliasAs("$skip")] public int? Skip { get; }

    [AliasAs("$filter")] public string Filter { get; }

    [AliasAs("$select")] public string Select { get; }

    [AliasAs("$orderBy")] public string OrderBy { get; }
}

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 Miguel