/// <summary> /// Initializes a new instance of the <see cref="T:CSF.Screenplay.JsonApis.Actions.GetApiResult`1"/> class. /// </summary> /// <param name="service">An object which describes the API to be executed.</param> public GetApiResult(IProvidesInvocationDetails service) { if (service == null) { throw new ArgumentNullException(nameof(service)); } this.service = service; }
/// <summary> /// Executes a web API using the specified invocation details and returns the result. /// </summary> /// <returns>The API result.</returns> /// <param name="invocationDetails">Invocation details which describe how the API should be called.</param> /// <typeparam name="T">The expected type of the result object.</typeparam> public virtual T GetResult <T>(IProvidesInvocationDetails invocationDetails) => jsonAdapter.GetResponse <T>(invocationDetails.GetRequestMessage(), GetTimeout(invocationDetails));
TimeSpan GetTimeout(IProvidesInvocationDetails invocationDetails) => invocationDetails.GetTimeout().GetValueOrDefault(defaultTimeout);
/// <summary> /// Executes a web API using the specified invocation details. /// </summary> /// <param name="invocationDetails">Invocation details which describe how the API should be called.</param> public virtual void Execute(IProvidesInvocationDetails invocationDetails) => jsonAdapter.GetResponse(invocationDetails.GetRequestMessage(), GetTimeout(invocationDetails));