Пример #1
0
        private async Task <StatementLrsResponse> GetStatement(Dictionary <string, string> queryParams)
        {
            var r = new StatementLrsResponse();

            var req = new MyHttpRequest
            {
                Method      = "GET",
                Resource    = "statements",
                QueryParams = queryParams
            };

            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 Statement(new Json.StringOfJson(Encoding.UTF8.GetString(res.Content)));

            return(r);
        }
Пример #2
0
        public async Task <StatementLrsResponse> SaveStatementAsync(Statement statement)
        {
            var r   = new StatementLrsResponse();
            var req = new MyHttpRequest
            {
                QueryParams = new Dictionary <string, string>(),
                Resource    = "statements"
            };

            if (statement.Id == null)
            {
                req.Method = "POST";
            }
            else
            {
                req.Method = "PUT";
                req.QueryParams.Add("statementId", statement.Id.ToString());
            }

            req.ContentType = "application/json";
            req.Content     = Encoding.UTF8.GetBytes(statement.ToJson(Version));

            var res = await MakeRequest(req);

            if (statement.Id == null)
            {
                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));
                statement.Id = new Guid((string)ids[0]);
            }
            else
            {
                if (res.Status != HttpStatusCode.NoContent)
                {
                    r.Success       = false;
                    r.HttpException = res.Ex;
                    r.SetErrMsgFromBytes(res.Content);
                    return(r);
                }
            }

            r.Success = true;
            r.Content = statement;

            return(r);
        }