Example #1
0
        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);
    }
Example #3
0
        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));
        }
Example #4
0
        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;
 }