private void CompleteOptions(RequestOptions options, GetStatementsRequest request) { if (request.Agent != null) { string agentStr = JsonConvert.SerializeObject(request.Agent, new JsonSerializerSettings() { DefaultValueHandling = DefaultValueHandling.Ignore }); options.QueryStringParameters.Add("agent", agentStr); } if (request.Verb != null) { options.QueryStringParameters.Add("verb", request.Verb.ToString()); } if (request.ActivityId != null) { options.QueryStringParameters.Add("activity", request.ActivityId.ToString()); } if (request.Registration.HasValue) { options.QueryStringParameters.Add("registration", request.Registration.Value.ToString()); } if (request.RelatedActivities) { options.QueryStringParameters.Add("related_activities", bool.TrueString.ToLowerInvariant()); } if (request.RelatedAgents) { options.QueryStringParameters.Add("related_agents", bool.TrueString.ToLowerInvariant()); } if (request.Since.HasValue) { options.QueryStringParameters.Add("since", request.Since.Value.ToString(Constants.DATETIME_FORMAT)); } if (request.Until.HasValue) { options.QueryStringParameters.Add("until", request.Since.Value.ToString(Constants.DATETIME_FORMAT)); } if (request.Limit > 0) { options.QueryStringParameters.Add("limit", request.Limit.ToString()); } if (request.Format != StatementFormat.Exact) { options.QueryStringParameters.Add("format", EnumHelper.ToEnumString(request.Format)); } if (request.Attachments) { options.QueryStringParameters.Add("attachments", bool.TrueString.ToLowerInvariant()); } if (request.Ascending) { options.QueryStringParameters.Add("ascending", bool.TrueString.ToLowerInvariant()); } foreach (string language in request.GetAcceptedLanguages()) { options.CustomHeaders.Add("Accept-Language", language); } }
public GetStatementsResponse GetStatements(GetStatementsRequest GetStatementsRequest) { GetStatementsRequest1 inValue = new GetStatementsRequest1(); inValue.GetStatementsRequest = GetStatementsRequest; GetStatementsResponse1 retVal = ((IBillingStatement)(this)).GetStatements(inValue); return(retVal.GetStatementsResponse); }
public async Task can_get_many_statements_without_attachments() { // Arrange var request = new GetStatementsRequest() { Agent = new Agent() { Name = AGENT_NAME, MBox = new Uri(AGENT_MBOX) }, Verb = new Uri(VERB), ActivityId = new Uri(ACTIVITY_ID), Registration = REGISTRATION, RelatedActivities = true, RelatedAgents = true, Since = DateTimeOffset.Parse(SINCE), Until = DateTimeOffset.Parse(UNTIL), Limit = LIMIT, Format = StatementFormat.Canonical, Attachments = false, Ascending = true }; this._mockHttp .When(HttpMethod.Get, this.GetApiUrl("statements")) .WithQueryString("agent", AGENT_QS) .WithQueryString("verb", VERB) .WithQueryString("activity", ACTIVITY_ID) .WithQueryString("registration", REGISTRATION.ToString()) .WithQueryString("related_activities", "true") .WithQueryString("related_agents", "true") .WithQueryString("since", SINCE) .WithQueryString("until", UNTIL) .WithQueryString("limit", LIMIT.ToString()) .WithQueryString("format", "canonical") .WithQueryString("ascending", "true") .WithHeaders("Accept-Language", "*") .Respond(this.GetStatementsResponseMessage()); // Act StatementResult result = await this._client.Statements.GetMany(request); // Assert result.Should().NotBeNull(); result.Statements.Should().NotBeNullOrEmpty(); result.More.Should().Be(new Uri(MORE, UriKind.Relative)); result.ConsistentThrough.Should().Be(DateTimeOffset.Parse(XAPI_CONSISTENT_THROUGH_VALUE)); }
async Task <StatementResult> IStatementsApi.GetMany(GetStatementsRequest request) { if (request == null) { throw new ArgumentNullException(nameof(request)); } request.Validate(); var options = new RequestOptions(ENDPOINT); this.CompleteOptions(options, request); HttpResponseMessage response = await this._client.GetJson(options); StatementResult content = await response.Content.ReadAsAsync <StatementResult>(new[] { new StrictJsonMediaTypeFormatter() }); content.ConsistentThrough = this.GetConsistentThroughHeader(response.Headers); return(content); }
public GetStatementsRequest1(GetStatementsRequest GetStatementsRequest) { this.GetStatementsRequest = GetStatementsRequest; }