recurly/recurly-client-dotnet

Ambiguous methods introduced in v3.7.0

BenGoldberg opened this issue · 4 comments

We updated our library to v3.7.0 today and noticed all of the method calls on the Recurly client now are ambiguous. For example:

var request = new AccountCreate
{
    Code = accountCode,
    Email = email,
    FirstName = firstName,
    LastName = lastName,
    Company = company
};

if (!String.IsNullOrEmpty(billingToken))
{
    request.BillingInfo = new BillingInfoCreate
    {
        TokenId = billingToken
    };
}

await ExecuteAsync(() => _client.CreateAccountAsync(request));

The call to _client.CreateAccountAsync() is now ambiguous. We had to add options: null to all of the client calls to fix the issue. This isn't a huge deal but since this was just introduced, I was wondering if this was intended behavior? Is it possible to make the methods not require the RequestOptions again, or is this how it has to be?

bhelx commented

I don't think this was intended to be a breaking change. Will have @douglasmiller take a look.

@BenGoldberg thank you for your patience with this issue. As @bhelx pointed out, this was not intended to be a breaking change. I've removed the overloaded async methods, which were intended to be a convenience to developers and, instead, turned out to be an inconvenience 👎

We are aware of the lack of sufficient testing around the async methods and operations in the library and are working on adding more testing around this area.

Note: You can remove the options: null that you mentioned needing to include, but I don't think you'll be required to to upgrade. I apologize for this whole debacle

No big inconvenience here, thank you for quickly addressing this issue! We will be looking out for the upcoming release.

@BenGoldberg the 3.7.1 release has been published to nuget. Thanks again for creating these issues. It helps us out a lot!