Exemplo n.º 1
0
        public async Task <StatementsResultLrsResponse> QueryStatementsAsync(StatementsQuery query)
        {
            var r = new StatementsResultLrsResponse();

            var req = new MyHttpRequest
            {
                Method      = "GET",
                Resource    = "statements",
                QueryParams = query.ToParameterMap(Version)
            };

            var res = await MakeRequest(req);

            if (res.Status != HttpStatusCode.OK)
            {
                r.Success       = false;
                r.HttpException = res.Ex;
                r.SetErrMsgFromBytes(res.Content);
                return(r);
            }

            r.Success = true;
            r.Content = new StatementsResult(new Json.StringOfJson(Encoding.UTF8.GetString(res.Content)));

            return(r);
        }
Exemplo n.º 2
0
        public async Task <StatementsResultLrsResponse> MoreStatementsAsync(StatementsResult result)
        {
            var r = new StatementsResultLrsResponse();

            var req = new MyHttpRequest
            {
                Method   = "GET",
                Resource = Endpoint.GetLeftPart(UriPartial.Authority)
            };

            if (!req.Resource.EndsWith("/"))
            {
                req.Resource += "/";
            }
            req.Resource += result.More;

            var res = await MakeRequest(req);

            if (res.Status != HttpStatusCode.OK)
            {
                r.Success       = false;
                r.HttpException = res.Ex;
                r.SetErrMsgFromBytes(res.Content);
                return(r);
            }

            r.Success = true;
            var json = new Json.StringOfJson(Encoding.UTF8.GetString(res.Content));

            r.Content = new StatementsResult(json);

            return(r);
        }
Exemplo n.º 3
0
        public async Task <StatementsResultLrsResponse> SaveStatementsAsync(List <Statement> statements)
        {
            var r = new StatementsResultLrsResponse();

            var req = new MyHttpRequest
            {
                Resource    = "statements",
                Method      = "POST",
                ContentType = "application/json"
            };

            var jarray = new JArray();

            foreach (var st in statements)
            {
                jarray.Add(st.ToJObject(Version));
            }
            req.Content = Encoding.UTF8.GetBytes(jarray.ToString());

            var res = await MakeRequest(req);

            if (res.Status != HttpStatusCode.OK)
            {
                r.Success       = false;
                r.HttpException = res.Ex;
                r.SetErrMsgFromBytes(res.Content);
                return(r);
            }

            var ids = JArray.Parse(Encoding.UTF8.GetString(res.Content));

            for (var i = 0; i < ids.Count; i++)
            {
                statements[i].Id = new Guid((string)ids[i]);
            }

            r.Success = true;
            r.Content = new StatementsResult(statements);

            return(r);
        }