0

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

Y U
  • 65
  • 5

1 Answers1

3

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; }
    }
jrummell
  • 42,637
  • 17
  • 112
  • 171
Miguel
  • 311
  • 2
  • 9