示例#1
0
        public static BladeRunner.JsonModel.StandardSets.StandardSet GetStandardSet(BladeRunner.JsonModel.Jurisdictions.StandardSet standardSet)
        {
            string url = StandardSetsBaseURL + "/" + standardSet.Id;

            string json = InvokeWebRequest(url);

            JObject jObject = JObject.Parse(json);

            JObject fixedObject = FixProperty(jObject);

            json = fixedObject.ToString();

            return(StandardSetsSerializer.Deserialize(json));
        }
            public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
            {
                _reader = reader;

                StandardSets array = new StandardSets();

                while (Read())
                {
                    if (CurrentTokenType == JsonToken.StartObject)
                    {
                        StandardSet standardSet = new StandardSet();

                        while (Read())
                        {
                            if (CurrentTokenType == JsonToken.PropertyName)
                            {
                                string name = CurrentValue.ToString();

                                switch (name)
                                {
                                case "id":
                                {
                                    standardSet.Id = _reader.ReadAsString();
                                    break;
                                }

                                case "title":
                                {
                                    standardSet.Title = _reader.ReadAsString();
                                    break;
                                }

                                case "subject":
                                {
                                    standardSet.Subject = _reader.ReadAsString();
                                    break;
                                }

                                case "educationLevels":
                                {
                                    List <string> list = new List <string>();
                                    while (Read())
                                    {
                                        if (CurrentTokenType == JsonToken.String)
                                        {
                                            list.Add(CurrentValue as string);
                                        }

                                        if (CurrentTokenType == JsonToken.EndArray)
                                        {
                                            break;
                                        }
                                    }
                                    standardSet.EducationLevels = list;
                                    break;
                                }

                                case "document":
                                {
                                    Document document = new Document();
                                    while (Read())
                                    {
                                        if (CurrentTokenType == JsonToken.PropertyName)
                                        {
                                            name = CurrentValue.ToString();

                                            switch (name)
                                            {
                                            case "id":
                                            {
                                                document.Id = _reader.ReadAsString();
                                                break;
                                            }

                                            case "valid":
                                            {
                                                document.Valid = _reader.ReadAsInt32().Value;
                                                break;
                                            }

                                            case "title":
                                            {
                                                document.Title = _reader.ReadAsString();
                                                break;
                                            }

                                            case "sourceURL":
                                            {
                                                document.SourceURL = _reader.ReadAsString();
                                                break;
                                            }

                                            case "asnIdentifier":
                                            {
                                                document.AsnIdentifier = _reader.ReadAsString();
                                                break;
                                            }

                                            case "publicationStatus":
                                            {
                                                document.PublicationStatus = _reader.ReadAsString();
                                                break;
                                            }
                                            }
                                        }

                                        if (CurrentTokenType == JsonToken.EndObject)
                                        {
                                            break;
                                        }
                                    }
                                    standardSet.Document = document;
                                    break;
                                }
                                }
                            }



                            if (CurrentTokenType == JsonToken.EndObject)
                            {
                                break;
                            }
                        }

                        if (standardSet.Id != null)
                        {
                            array.Add(standardSet);
                        }
                    }


                    if (CurrentTokenType == JsonToken.EndArray)
                    {
                        break;
                    }
                }

                return(array);
            }