コード例 #1
0
        public void createChild <T>(RestSessionBase session, T childRestObj, int responseChoice)
        {
            String parameters = null;

            if (responseChoice != -1)
            {
                parameters = "responseChoice=" + responseChoice.ToString();
            }

            string jsonToPost = JsonConvert.SerializeObject(childRestObj, new JsonSerializerSettings {
                NullValueHandling = NullValueHandling.Ignore
            });
            HttpWebResponse response = session.sendRequestWithRetry("POST", getResourceUrlForChildType(session, childRestObj.GetType()), parameters, null, jsonToPost);

            if ((int)response.StatusCode >= 200 && (int)response.StatusCode < 300)
            {
                StreamReader reader = new StreamReader(response.GetResponseStream());
                String       data   = reader.ReadToEnd();
                reader.Close();
                response.Close();

                List <T> list = JsonConvert.DeserializeObject <List <T> >(data, new JsonSerializerSettings {
                    NullValueHandling = NullValueHandling.Ignore, MissingMemberHandling = MissingMemberHandling.Ignore
                });
                T responseRestObj = list[0];
                copyJsonProperties(responseRestObj, childRestObj);
            }
        }
コード例 #2
0
        public String getResourceUrlForChildType(RestSessionBase session, Type childRestObjClass)
        {
            MethodInfo info = childRestObjClass.GetMethod("getResourceName");
            var        childResourceName = info.Invoke(null, null);

            return(String.Format("{0}/{1}", getResourceUrl(session, session.amIRootObject(this)), childResourceName));
        }
コード例 #3
0
        public void assign <T>(RestSessionBase session, List <T> children) where T : RestObject
        {
            List <string> ids = new List <string>();

            foreach (T child in children)
            {
                ids.Add(child.NUId);
            }

            assign <T>(session, ids);
        }
コード例 #4
0
        public List <T> fetch(RestSessionBase session, String filter, String orderBy, String[] groupBy, int page, int pageSize, String queryParameters, bool commit)
        {
            String resourceUrl           = getResourceUrl(session);
            WebHeaderCollection headers  = prepareHeaders(filter, orderBy, groupBy, page, pageSize);
            HttpWebResponse     response = session.sendRequestWithRetry("GET", resourceUrl, queryParameters, headers);

            if ((int)response.StatusCode >= 200 && (int)response.StatusCode < 300)
            {
                StreamReader reader = new StreamReader(response.GetResponseStream());
                String       data   = reader.ReadToEnd();
                reader.Close();
                response.Close();

                return(JsonConvert.DeserializeObject <List <T> >(data, new JsonSerializerSettings {
                    NullValueHandling = NullValueHandling.Ignore
                }));
            }

            throw new RestException("Response received with status code: " + response.StatusCode);
        }
コード例 #5
0
        public String getResourceUrl(RestSessionBase session, bool ignoreRoot = false)
        {
            MethodInfo info         = this.GetType().GetMethod("getResourceName");
            var        resourceName = info.Invoke(null, null);

            String url = session.getRestBaseUrl();

            if (NUId != null)
            {
                return(String.Format("{0}/{1}/{2}", url, resourceName, NUId));
            }
            else if (ignoreRoot)
            {
                return(String.Format("{0}", url));
            }
            else
            {
                return(String.Format("{0}/{1}", url, resourceName));
            }
        }
コード例 #6
0
        public void assign <T>(RestSessionBase session, List <string> children)
        {
            if (typeof(T) == typeof(RestObject))
            {
                throw new RestException("Must use a derived type of RestObject");
            }

            string jsonToPost = JsonConvert.SerializeObject(children, new JsonSerializerSettings {
                NullValueHandling = NullValueHandling.Ignore
            });
            HttpWebResponse response = session.sendRequestWithRetry("PUT", getResourceUrlForChildType(session, typeof(T)), null, null, jsonToPost);

            if ((int)response.StatusCode >= 200 && (int)response.StatusCode < 300)
            {
                response.Close();
                return;
            }

            response.Close();
            throw new RestException("Response received with status code: " + response.StatusCode);
        }
コード例 #7
0
        public void save(RestSessionBase session, int responseChoice)
        {
            String parameters = null;

            if (responseChoice != -1)
            {
                parameters = "responseChoice=" + responseChoice.ToString();
            }
            string jsonToPost = JsonConvert.SerializeObject(this, new JsonSerializerSettings {
                NullValueHandling = NullValueHandling.Ignore
            });
            HttpWebResponse response = session.sendRequestWithRetry("PUT", getResourceUrl(session), parameters, null, jsonToPost);

            if ((int)response.StatusCode >= 200 && (int)response.StatusCode < 300)
            {
                response.Close();
                return;
            }

            response.Close();
            throw new RestException("Response received with status code: " + response.StatusCode);
        }
コード例 #8
0
        public void fetch(RestSessionBase session)
        {
            HttpWebResponse response = session.sendRequestWithRetry("GET", getResourceUrl(session), null, null, null);

            if ((int)response.StatusCode >= 200 && (int)response.StatusCode < 300)
            {
                StreamReader reader = new StreamReader(response.GetResponseStream());
                String       data   = reader.ReadToEnd();
                reader.Close();
                response.Close();

                var objList = JsonConvert.DeserializeObject <List <JObject> >(data, new JsonSerializerSettings {
                    NullValueHandling = NullValueHandling.Ignore, MissingMemberHandling = MissingMemberHandling.Ignore
                });
                JObject jobject = objList[0];
                var     obj     = jobject.ToObject(this.GetType());
                copyJsonProperties(obj, this);
                return;
            }

            response.Close();
            throw new RestException(response.StatusDescription);
        }
コード例 #9
0
 private String getResourceUrl(RestSessionBase session)
 {
     return(parentObject.getResourceUrlForChildType(session, childType));
 }
コード例 #10
0
 public List <T> fetch(RestSessionBase session)
 {
     return(fetch(session, null, null, null, -1, -1, null, true));
 }
コード例 #11
0
 public void createChild <T>(RestSessionBase session, T childRestObj)
 {
     this.createChild(session, childRestObj, -1);
 }
コード例 #12
0
 public void save(RestSessionBase session)
 {
     save(session, -1);
 }
コード例 #13
0
 public void delete(RestSessionBase session)
 {
     delete(session, -1);
 }