Close() public method

Changes the reader's state to JsonReader.State.Closed.
public Close ( ) : void
return void
Beispiel #1
0
 private static string NewtonsoftDecode(string input)
 {
     var sr = new StringReader(input);
     var reader = new JsonTextReader(sr);
     var output = reader.ReadAsString();
     reader.Close();
     return output;
 }
        public void DeserializeRequest(Message message, object[] parameters)
        {
            object bodyFormatProperty;

            if (!message.Properties.TryGetValue(WebBodyFormatMessageProperty.Name, out bodyFormatProperty) ||
                (bodyFormatProperty as WebBodyFormatMessageProperty).Format != WebContentFormat.Raw)
            {
                throw new InvalidOperationException("Incoming messages must have a body format of Raw. Is a ContentTypeMapper set on the WebHttpBinding?");
            }

            var bodyReader = message.GetReaderAtBodyContents();

            bodyReader.ReadStartElement("Binary");
            var rawBody = bodyReader.ReadContentAsBase64();
            var ms      = new MemoryStream(rawBody);

            var sr         = new StreamReader(ms);
            var serializer = CreateJsonSerializer(); // new JsonSerializer();

            if (parameters.Length == 1)
            {
                // single parameter, assuming bare
                parameters[0] = serializer.Deserialize(sr, _operation.Messages[0].Body.Parts[0].Type);
            }
            else
            {
                // multiple parameter, needs to be wrapped
                JsonReader reader = new Newtonsoft.Json.JsonTextReader(sr);
                reader.Read();
                if (reader.TokenType != Newtonsoft.Json.JsonToken.StartObject)
                {
                    throw new InvalidOperationException("Input needs to be wrapped in an object");
                }

                reader.Read();
                while (reader.TokenType == Newtonsoft.Json.JsonToken.PropertyName)
                {
                    var parameterName = reader.Value as string;
                    reader.Read();
                    if (_parameterNames.ContainsKey(parameterName))
                    {
                        var parameterIndex = _parameterNames[parameterName];
                        parameters[parameterIndex] = serializer.Deserialize(reader, _operation.Messages[0].Body.Parts[parameterIndex].Type);
                    }
                    else
                    {
                        reader.Skip();
                    }

                    reader.Read();
                }

                reader.Close();
            }

            sr.Close();
            ms.Close();
        }
Beispiel #3
0
        public static void Load(string path)
        {
            
            JsonTextReader reader = new JsonTextReader(new StreamReader(path));

            JsonSerializer serializer = new JsonSerializer();
            instance = serializer.Deserialize<BotConfig>(reader);
            reader.Close();
        }
        private static ModelList ReadFile()
        {
            var filePath = string.Format("c:\\models.json");

              var reader = new StreamReader(filePath);
              var jsonReader = new JsonTextReader(reader);
              var serializer = new JsonSerializer();
              var modelList = serializer.Deserialize<ModelList>(jsonReader);
              jsonReader.Close();

              return modelList;
        }
Beispiel #5
0
        private static void InitializePopulation(string inputFile, string populationSize)
        {
            var jsSerializer = new JsonSerializer();
            var textReader = new StreamReader(inputFile);
            var reader = new JsonTextReader(textReader);
            var cfg = jsSerializer.Deserialize<Configuration>(reader);
            textReader.Close();
            reader.Close();

            Runner = new Runner(cfg, int.Parse(populationSize));

            Console.WriteLine("Initialized");
            Console.WriteLine("Best table score is: " + Runner.BestScore());
        }
    public void CloseInput()
    {
      MemoryStream ms = new MemoryStream();
      JsonTextReader reader = new JsonTextReader(new StreamReader(ms));

      Assert.IsTrue(ms.CanRead);
      reader.Close();
      Assert.IsFalse(ms.CanRead);

      ms = new MemoryStream();
      reader = new JsonTextReader(new StreamReader(ms)) { CloseInput = false };

      Assert.IsTrue(ms.CanRead);
      reader.Close();
      Assert.IsTrue(ms.CanRead);
    }
        /// <summary>
        /// Initializes a new instance of the <see cref="JsonInterpreter"/> class.
        /// </summary>
        /// <param name="source">The <see cref="IResource"/>.</param>
        public JsonInterpreter(IResource source) : base(source)
        {
            string xmlContents = string.Empty;
            using(source)
            {
                JsonReader reader = new JsonTextReader(new StreamReader(source.Stream));
                reader.Read();

                XmlNodeConverter toXml = new XmlNodeConverter();
                XmlDocument xmlDoc = (XmlDocument)toXml.ReadJson(reader, typeof(XmlDocument));
                xmlContents = xmlDoc.OuterXml;
                reader.Close();                
            }

            IResource resource = new StaticContentResource(xmlContents);

            xmlInterpreter = new XmlConfigurationInterpreter(resource);
        }
Beispiel #8
0
        public async Task GetNextTopPosts(Action<List<Post>> callback)
        {
            if (NextTopPosts == "/news3")
            {
                callback(new List<Post>());
                return;
            }

            HttpWebRequest request = HttpWebRequest.Create("http://" + serverAddress + NextTopPosts) as HttpWebRequest;
            request.Accept = "application/json";

            var response = await request.GetResponseAsync().ConfigureAwait(false);

            Stream stream = response.GetResponseStream();
            UTF8Encoding encoding = new UTF8Encoding();
            StreamReader sr = new StreamReader(stream, encoding);

            JsonTextReader tr = new JsonTextReader(sr);
            List<Post> data = new JsonSerializer().Deserialize<List<Post>>(tr);

            tr.Close();
            sr.Dispose();

            stream.Dispose();

            foreach (var item in data)
            {
                item.title = CleanTitleText(item.title);
                item.is_read = PostHistory.Contains(item.id);

                if (item.url.StartsWith("http") == false)
                    item.url = "http://news.ycombinator.com/item?id=" + item.id;
            }

            for (int i = 0; i < data.Count; i++)
            {
                data[i] = FormatPost(data[i]);
            }

            int index = NextTopPosts == "/news" ? 2 : Convert.ToInt32(NextTopPosts.Replace("/news", "")) + 1;
            NextTopPosts = "/news" + index;

            callback(data);
        }
Beispiel #9
0
        /// <summary>
        /// Parse a string, and deserialize it into the supplied object.
        /// </summary>
        /// <param name="Object">The MudObject to write deserialized data to</param>
        /// <param name="Data"></param>
        internal static void DeserializeObject(MudObject Object, String Data)
        {
            var persistentProperties = new List<Tuple<System.Reflection.PropertyInfo, PersistAttribute>>(EnumeratePersistentProperties(Object));
            var jsonReader = new JsonTextReader(new System.IO.StringReader(Data));

            jsonReader.Read();
            jsonReader.Read();
            while (jsonReader.TokenType != JsonToken.EndObject)
            {
                var propertyName = jsonReader.Value.ToString();

                var prop = persistentProperties.FirstOrDefault(t => t.Item1.Name == propertyName);
                if (prop == null) throw new InvalidOperationException();
                jsonReader.Read();

                prop.Item1.SetValue(Object, prop.Item2.ReadValue(prop.Item1.PropertyType, jsonReader, Object), null);

            }

            jsonReader.Close();
        }
        public void GetDateJson(DateTime date, Action<ApiModel.Rootobject> success, Action<Exception> error)
        {
            string url = "http://www.someEventsWebsite.com"; // Obviously fake...

            Action<string> parseAndAddToDb = text =>
            {
                using (var stringReader = new StringReader(text))
                {
                    var converter = new JsonSerializer();
                    var jsonReader = new JsonTextReader(stringReader);
                    var rootobject = converter.Deserialize<ApiModel.Rootobject>(jsonReader);

                    _apiModelCacheService.AddDateModel(date, rootobject);

                    success(rootobject);

                    jsonReader.Close();
                }
            };

            _downloaderService.Download(url, parseAndAddToDb, error);
        }
        public object DeSerialize(string value, Type type)
        {
            JsonSerializer json = new Newtonsoft.Json.JsonSerializer();

            json.NullValueHandling      = Newtonsoft.Json.NullValueHandling.Ignore;
            json.ObjectCreationHandling = Newtonsoft.Json.ObjectCreationHandling.Replace;
            json.MissingMemberHandling  = Newtonsoft.Json.MissingMemberHandling.Ignore;
            json.ReferenceLoopHandling  = Newtonsoft.Json.ReferenceLoopHandling.Ignore;

            json.Converters.Add(new EnumerableConverter());

            StringReader sr = new StringReader(value);

            Newtonsoft.Json.JsonTextReader reader = new Newtonsoft.Json.JsonTextReader(sr);
            object result = null;

            result = type == null?Newtonsoft.Json.JsonConvert.DeserializeObject(value) : json.Deserialize(reader, type);

            reader.Close();

            return(result);
        }
        /// <summary>
        /// Populates the recordset.
        /// </summary>
        public void PopulateFormList( )
        {
            try
            {
                string requesturl = _url;
                WebResponse webResponse = Utilities.DownloadRequest(requesturl, _username, _password);
                Encoding enc = Encoding.Default;
                string configuration = String.Empty;
                using (StreamReader reader = new StreamReader(webResponse.GetResponseStream()))
                {
                    configuration = reader.ReadToEnd();
                }
                Debug.WriteLine(configuration);

                Newtonsoft.Json.JsonSerializer json = new Newtonsoft.Json.JsonSerializer();

                json.NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore;
                json.ObjectCreationHandling = Newtonsoft.Json.ObjectCreationHandling.Replace;
                json.MissingMemberHandling = Newtonsoft.Json.MissingMemberHandling.Ignore;
                json.ReferenceLoopHandling = Newtonsoft.Json.ReferenceLoopHandling.Ignore;

                StringReader sr = new StringReader(configuration);
                Newtonsoft.Json.JsonTextReader jReader = new JsonTextReader(sr);
                Newtonsoft.Json.Linq.JArray result = (Newtonsoft.Json.Linq.JArray)json.Deserialize(jReader, Type.GetType("System.Data.DataSet"));

                //Get the Record Set
                jReader.Close();

                List<FormResult> results = new List<FormResult>();
                return;
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Beispiel #13
0
 public static void Main(string[] args)
 {
     WebClient client = new WebClient();
     foreach (string album in args)
     {
         Console.WriteLine("Retrieving album info..." /* from " + album + "..."*/);
         HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create(album);
         HttpWebResponse resp = (HttpWebResponse)req.GetResponse();
         Stream dataStream = resp.GetResponseStream();
         StreamReader reader = new StreamReader(dataStream);
         List<string> page = new List<string>();
         while (!reader.EndOfStream)
             page.Add(reader.ReadLine());
         reader.Close();
         dataStream.Close();
         resp.Close();
         int albumdatastart = page.IndexOf("var TralbumData = {");
         int albumdataend = page.IndexOf("};", albumdatastart);
         string jsondata = "{";
         for (int i = albumdatastart + 4; i < albumdataend; i++)
             jsondata += page[i];
         jsondata += " }";
         StringReader sr = new StringReader(jsondata);
         JsonTextReader jr = new JsonTextReader(sr);
         JsonSerializer js = new JsonSerializer();
         TralbumData data = js.Deserialize<TralbumData>(jr);
         jr.Close();
         sr.Close();
         string albumPath = data.current.title;
         foreach (char item in Path.GetInvalidPathChars())
             albumPath = albumPath.Replace(item, '_');
         albumPath = albumPath.Replace(": ", " - ");
         albumPath = Path.Combine(Environment.CurrentDirectory, albumPath);
         Directory.CreateDirectory(albumPath);
         Console.WriteLine("Found " + data.trackinfo.Length + " tracks in album \"" + data.current.title + "\"...");
         client.DownloadFile(data.artFullsizeUrl, Path.Combine(albumPath, "art.png"));
         string hostname = new Uri(album).Host;
         for (int i = 0; i < data.trackinfo.Length; i++)
         {
             Console.Write("Downloading track \"" + data.trackinfo[i].title + "\" (" + (i + 1) + "/" + data.trackinfo.Length + ")...");
             string filePath = data.trackinfo[i].title;
             if (data.trackinfo.Length < 100)
             {
                 filePath = (i + 1).ToString("D2") + " - " + filePath;
             }
             else
             {
                 filePath = (i + 1).ToString("D3") + " - " + filePath;
             }
             foreach (char item in Path.GetInvalidFileNameChars())
                 filePath = filePath.Replace(item, '_');
             filePath = filePath.Replace(": ", " - ").Replace('/', '-').Replace('\\', '-');
             filePath = Path.ChangeExtension(Path.Combine(albumPath, filePath), "mp3");
             client.DownloadFile(data.trackinfo[i].file["mp3-128"], filePath);
             IdSharp.Tagging.ID3v2.ID3v2Tag tag = new IdSharp.Tagging.ID3v2.ID3v2Tag(filePath);
             tag.Album = data.current.title;
             tag.AlbumArtist = tag.Artist = data.artist;
             IdSharp.Tagging.ID3v2.Frames.IAttachedPicture pic = tag.PictureList.AddNew();
             pic.Picture = System.Drawing.Image.FromFile(Path.Combine(albumPath, "art.png"));
             if (data.trackinfo[i].has_info != null)
             {
                 IdSharp.Tagging.ID3v2.Frames.IComments com = tag.CommentsList.AddNew();
                 com.Value = data.trackinfo[i].has_info;
             }
             tag.ReleaseTimestamp = data.current.release_date_datetime.ToString("s", System.Globalization.DateTimeFormatInfo.InvariantInfo);
             tag.Title = data.trackinfo[i].title;
             tag.TrackNumber = (i + 1).ToString(System.Globalization.NumberFormatInfo.InvariantInfo);
             tag.Year = data.current.release_date_datetime.Year.ToString("0000", System.Globalization.NumberFormatInfo.InvariantInfo);
             tag.CommercialInfoUrlList.AddNew().Value = album;
             tag.AudioFileUrl = "http://" + hostname + data.trackinfo[i].title_link;
             tag.ArtistUrlList.AddNew().Value = "http://" + hostname + "/";
             tag.Save(filePath);
             Console.WriteLine(" downloaded!");
         }
         File.WriteAllText(Path.Combine(albumPath, "Info.txt"), data.current.title + " by " + data.artist + "\r\nReleased " + data.current.release_date_datetime.ToString() + "\r\n" + data.current.about + "\r\n" + data.current.credits);
     }
 }
Beispiel #14
0
        public static object Deserialize(string jsonText, Type valueType)
        {
            Newtonsoft.Json.JsonSerializer json = new Newtonsoft.Json.JsonSerializer();

            json.NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore;
            json.ObjectCreationHandling = Newtonsoft.Json.ObjectCreationHandling.Replace;
            json.MissingMemberHandling = Newtonsoft.Json.MissingMemberHandling.Ignore;
            json.ReferenceLoopHandling = Newtonsoft.Json.ReferenceLoopHandling.Ignore;

            StringReader sr = new StringReader(jsonText);
            Newtonsoft.Json.JsonTextReader reader = new JsonTextReader(sr);
            object result = json.Deserialize(reader, valueType);
            reader.Close();

            return result;
        }
        public async Task<bool> GetUserDataAsync()
        {
            IsLoading = true;
            String strContent = await ViewModelLocator.Client.MakeOperationAsync(SupportedModules.USER,
                                                                              SupportedMethods.GetUserData);

            if (strContent != "")
            {
                User connectedUser = JsonConvert.DeserializeObject<User>(strContent);
                StringReader str = new StringReader(strContent);
                String institution = "";
                String platform = "";

                JsonTextReader reader = new JsonTextReader(str);
                while (reader.Read())
                {
                    if (reader.Value != null)
                    {
                        switch (reader.Value.ToString())
                        {
                            case "institutionName":
                                institution = reader.ReadAsString();
                                break;
                            case "platformName":
                                platform = reader.ReadAsString();
                                break;
                            default:
                                continue;
                        }
                    }
                }
                reader.Close();
                str.Close();

                Settings.UserSetting.setUser(connectedUser);
                Settings.InstituteSetting = institution;
                Settings.PlatformSetting = platform;

                IsLoading = false;
                return true;
            }
            IsLoading = false;
            return false;
        }
        public void DeserializeRequest(Message message, object[] parameters)
        {
            object bodyFormatProperty;
            if (!message.Properties.TryGetValue(WebBodyFormatMessageProperty.Name, out bodyFormatProperty) ||
                (bodyFormatProperty as WebBodyFormatMessageProperty).Format != WebContentFormat.Raw)
            {
                throw new InvalidOperationException("Incoming messages must have a body format of Raw. Is a ContentTypeMapper set on the WebHttpBinding?");
            }

            XmlDictionaryReader bodyReader = message.GetReaderAtBodyContents();
            bodyReader.ReadStartElement("Binary");
            byte[] rawBody = bodyReader.ReadContentAsBase64();
            MemoryStream ms = new MemoryStream(rawBody);

            StreamReader sr = new StreamReader(ms);
            JsonSerializer serializer = new JsonSerializer
            {
                PreserveReferencesHandling = PreserveReferencesHandling.Objects
            };

            if (parameters.Length == 1)
            {
                // single parameter, assuming bare
                parameters[0] = serializer.Deserialize(sr, this.operation.Messages[0].Body.Parts[0].Type);
            }
            else
            {
                // multiple parameter, needs to be wrapped
                JsonReader reader = new JsonTextReader(sr);
                reader.Read();
                if (reader.TokenType != JsonToken.StartObject)
                {
                    throw new InvalidOperationException("Input needs to be wrapped in an object");
                }

                reader.Read();
                while (reader.TokenType == JsonToken.PropertyName)
                {
                    string parameterName = reader.Value as string;
                    reader.Read();
                    if (this.parameterNames.ContainsKey(parameterName))
                    {
                        int parameterIndex = this.parameterNames[parameterName];
                        parameters[parameterIndex] = serializer.Deserialize(reader, this.operation.Messages[0].Body.Parts[parameterIndex].Type);
                    }
                    else
                    {
                        reader.Skip();
                    }

                    reader.Read();
                }

                reader.Close();
            }

            sr.Close();
            ms.Close();
        }
        private void testSingleJsonResource(string jsonFile)
        {
            Support.ErrorList errors = new Support.ErrorList();
            Model.Resource singleResult;

            using (JsonTextReader jr = new JsonTextReader(new System.IO.StreamReader(jsonFile)))
            {
                Debug.WriteLine("  Reading from json...");
                singleResult = FhirParser.ParseResource(jr, errors);
                jr.Close();
            }

            if (errors.Count > 0)
            {
                Debug.WriteLine("=== Json Parse errors ===" + Environment.NewLine + errors.ToString());
                _roundTripFailed = true;
            }
            else
            {
                string xmlFile = Path.ChangeExtension(jsonFile, ".xml");

                using (XmlWriter xw = new XmlTextWriter(new System.IO.StreamWriter(xmlFile)))
                {
                    Debug.WriteLine("  Writing xml...");
                    FhirSerializer.SerializeResource(singleResult, xw);
                }
            }
        }
Beispiel #18
0
        private void LoadDetails(IsolatedStorageFile store)
        {
            using (var fs = store.OpenFile(InfoPath, FileMode.Open))
            {
                var serializer = new JsonSerializer();
                var reader = new JsonTextReader(
                    new StreamReader(fs));

                var details = serializer.Deserialize
                    <DatabaseDetails>(reader);

                Details = details;
                reader.Close();
            }
        }
Beispiel #19
0
        /// <summary>
        /// Loads a list from a json file and returns a hashtable for each record
        /// </summary>
        public static List<Hashtable> RecordsFromFile(string file)
        {
            string path = StorageContainer.TitleLocation + file;
            System.IO.TextReader reader = new System.IO.StreamReader(path);
            List<Hashtable> list = new List<Hashtable>();

            Hashtable cur = null;

            // Read through each object in the file
            JsonTextReader json = new JsonTextReader(reader);
            while (json.Read())
            {
                if (json.Value == null && (json.TokenType == JsonToken.StartObject || json.TokenType == JsonToken.EndObject))
                {
                    json.Read();
                    if (json.TokenType == JsonToken.PropertyName)
                    {
                        if (cur != null) list.Add(cur);
                        cur = new Hashtable();
                        cur["name"] = (string)json.Value;
                        json.Read();
                    }
                }
                else if (json.TokenType == JsonToken.PropertyName)
                {
                    string val = (string)json.Value;
                    json.Read();
                    cur[val] = json.Value;
                }
            }

            // Add the last record
            if (cur != null) list.Add(cur);

            json.Close();
            return list;
        }
        private void saveToJson(string fileUrn, string tags, string filename)
        {
            var filePath = string.Format("c:\\models.json");

                var reader = new StreamReader(filePath);
                var jsonReader = new JsonTextReader(reader);
                var serializer = new JsonSerializer();
                var modelList = serializer.Deserialize<ModelList>(jsonReader);
                jsonReader.Close();

                if (modelList == null)
                {
                    modelList = new ModelList{Models = new List<Model>()};
                }

                if (modelList.Models.All(x => x.FileUrn != fileUrn))
                {
                    var model = new Model { FileUrn = fileUrn, Tags = tags, FileName = filename };
                    modelList.Models.Add(model);
                }

                var writer = new StreamWriter(filePath);
                var jsonWriter = new JsonTextWriter(writer);
                var ser = new JsonSerializer();
                ser.Serialize(jsonWriter, modelList);
                jsonWriter.Flush();
        }
Beispiel #21
0
        private void Read(JsonTextReader reader)
        {
            var hasStuff = reader.Read();
            if (hasStuff)
            {
                if (!_started)
                {
                    _started = true;
                    (this as IEventEmitter).Raise("start", new object[] { this });
                }

                switch (reader.TokenType)
                {
                    case JsonToken.StartObject:

                        break;
                    case JsonToken.EndObject:

                        break;
                    case JsonToken.StartArray:

                        break;
                    case JsonToken.EndArray:

                        break;
                    case JsonToken.Boolean:

                        break;
                    case JsonToken.Bytes:

                        break;
                    case JsonToken.Date:

                        break;
                    case JsonToken.Float:

                        break;
                    case JsonToken.Integer:

                        break;
                    case JsonToken.PropertyName:

                        break;
                    case JsonToken.Null:

                        break;
                    case JsonToken.Raw:

                        break;
                    case JsonToken.String:

                        break;
                }

                Read(reader);
            }
            else
            {
                reader.Close();
                (this as IEventEmitter).Raise("end", new object[]{ this });
            }
        }
Beispiel #22
0
        private void LoadConfiguration()
        {
            if(!File.Exists(_file))
                return;

            _lock.EnterWriteLock();
            try
            {
                using(TextReader textReader = new StreamReader(_file))
                {
                    JsonTextReader reader = new JsonTextReader(textReader);
                    _storage = JObject.Load(reader);
                    reader.Close();
                }
            }
            finally
            {
                _lock.ExitWriteLock();
            }
        }
        public static Envelope Deserialize(byte[] body)
        {
            Envelope env = null;

            MemoryStream baseStream = new MemoryStream(body);
            JsonSerializer ser = new JsonSerializer();

            using (StreamReader reader = new StreamReader(baseStream, new UTF8Encoding()))
            {
                using (JsonTextReader jsonReader = new JsonTextReader(reader))
                {
                    env = ser.Deserialize<Envelope>(jsonReader);
                    jsonReader.Close();
                }
                reader.Close();
            }

            return env;
        }
Beispiel #24
0
        public async Task GetComments(Action<CommentResponse> callback, string postId)
        {
            HttpWebRequest request = HttpWebRequest.Create("http://" + serverAddress + "/item/" + postId) as HttpWebRequest;
            request.Accept = "application/json";

            var response = await request.GetResponseAsync().ConfigureAwait(false);

            Stream stream = response.GetResponseStream();
            UTF8Encoding encoding = new UTF8Encoding();
            StreamReader sr = new StreamReader(stream, encoding);

            JsonTextReader tr = new JsonTextReader(sr);
            CommentResponse data = new JsonSerializer().Deserialize<CommentResponse>(tr);

            tr.Close();
            sr.Dispose();

            stream.Dispose();

            if (data.url.StartsWith("http") == false)
                data.url = "http://news.ycombinator.com/item?id=" + data.id;

            data = FormatCommentPost(data);

            if (data.content != null)
            {
                Comment child = new Comment();

                child.comments = new List<Comment>();
                child.content = data.content;
                child.id = null;
                child.level = 0;
                child.time_ago = data.time_ago;
                child.title = data.user + " " + data.time_ago;
                child.user = data.user;

                data.comments.Insert(0, child);
            }

            int i = data.comments.Count - 1;

            while (i >= 0)
            {
                data.comments[i] = CleanCommentText(data.comments[i]);
                data.comments[i] = FormatComment(data.comments[i]);

                i--;
            }

            callback(data);
        }
        public void GenerateClasses(string nameSpace)
        {
            var numSamples = NumRowsToSample;

            _generatedClasses =
                GetInputFiles()
                    .Select(f =>
                    {
                        // TODO: Be a better error handler
                        try
                        {
                            var fs = new FileStream(f, FileMode.Open);
                            var sr = new StreamReader(fs);
                            var jtr = new JsonTextReader(sr);

                            var examples =
                                Enumerable
                                    .Range(0, numSamples)
                                    .Select(_ =>
                                    {
                                        while (jtr.Read())
                                            if (jtr.TokenType == JsonToken.StartObject)
                                                return JObject.Load(jtr).ToString();
                                        return null;
                                    })
                                    .Where(json => json != null);

                            var examplesJson = String.Format("[{0}]", String.Join(",\r\n", examples));

                            jtr.Close();
                            sr.Close();
                            fs.Close();

                            var className = Path.GetFileNameWithoutExtension(f).SanitiseClassName();
                            var finalNamespace = nameSpace + "." + className + "Input";
                            var outputStream = new MemoryStream();
                            var outputWriter = new StreamWriter(outputStream);

                            var jsg = new JsonClassGenerator
                            {
                                Example = examplesJson,
                                Namespace = finalNamespace,
                                MainClass = className,
                                OutputStream = outputWriter,
                                NoHelperClass = true,
                                UseProperties = true,
                                GeneratePartialClasses = true
                            };

                            jsg.GenerateClasses();

                            outputWriter.Flush();
                            outputStream.Seek(0, SeekOrigin.Begin);

                            var classDef = new StreamReader(outputStream)
                                .ReadToEnd()
                                .Replace("IList<", "List<");

                            classDef =
                                classDef.Substring(classDef.IndexOf(String.Format("namespace {0}", nameSpace),
                                    StringComparison.Ordinal));

                            NamespacesToAdd.Add(finalNamespace);

                            return new JsonFileGeneratedClass(this)
                            {
                                Namespace = finalNamespace,
                                ClassName = className,
                                DataFilePath = f,
                                ClassDefinition = classDef,
                                Success = true
                            };
                        }
                        catch (Exception e)
                        {
                            return new JsonFileGeneratedClass(this)
                            {
                                DataFilePath = f,
                                Success = false,
                                Error = e
                            };
                        }
                    })
                    .ToList();
        }
Beispiel #26
0
        private async Task TransformToSDataPayload(Stream targetStream)
        {
            using (var oContentStream = await originalContent.ReadAsStreamAsync())
            {
                JsonReader reader = null;
                JsonWriter outStream = null;
                int level = -1;
                try
                {
                    reader = new JsonTextReader(new StreamReader(oContentStream));
                    outStream = new JsonTextWriter(new StreamWriter(targetStream));

                    int respContentType = GetContentType();
                    bool searchForCollection = respContentType == ContentOdataCollection
                                               || respContentType == ContentApiCollection;

                    while (reader.Read())
                    {
                        if (searchForCollection && level == 0 && reader.TokenType == JsonToken.PropertyName)
                        {
                            if ((string)reader.Value == ParamCollectionNameApi || (string)reader.Value == ParamCollectionNameOdata)
                            {
                                WritePagingProperties(outStream);
                                outStream.WritePropertyName(ParamCollectionNameSdata);
                            }
                            else if ((string)reader.Value == ParamTotalresultOdata)
                                outStream.WritePropertyName(ParamTotalresultSdata);
                            else
                                outStream.WriteToken(reader, false);
                        }
                        else if (reader.TokenType == JsonToken.PropertyName)
                            outStream.WritePropertyName(CallOptionalMaps((string)reader.Value));
                        else
                        {
                            if (reader.TokenType == JsonToken.StartObject)
                                level++;
                            else if (reader.TokenType == JsonToken.EndObject)
                                level--;
                            outStream.WriteToken(reader, false);
                        }
                    }
                    outStream.Flush();
                }
                catch (Exception e)
                {
                    // TODO can we get the user and tenant context from here?
                }
                finally
                {
                    if (reader != null)
                        reader.Close();
                    if (outStream != null)
                        outStream.Close();

                }
            }
        }
 private void checkButton_Click(object sender, EventArgs e)
 {
     if (jsonLocation == null || tileLocation == null)
     {
         MessageBox.Show(@"Error! Please point the program to both your tile_config.json and your \data\json\ folder");
     }
     else
     {
         writing = new List<string>();
         status.Text = "Status: Reading tile_config.json";
         sr1 = new StreamReader(tileLocation);
         JsonReader reader = new JsonTextReader(sr1);
         JObject o1 = (JObject)JToken.ReadFrom(reader);
         reader.Close();
         sr1.Close();
         array = (JArray)o1["tiles"];
         reader.Close();
         tileID = new List<string>();
         for (int i = 0; i < array.Count; i++)
         {
             tileID.Add((string)array[i]["id"]);
         }
         foreach (String s in jsonFiles)
         {
             status.Text = "Status: Reading " + s;
             filepath = jsonLocation + s;
             Console.WriteLine(filepath);
             sr1 = new StreamReader(filepath);
             json = sr1.ReadToEnd();
             sr1.Close();
             array = JArray.Parse(json);
             for (int i = 0; i < array.Count; i++)
             {
                 bool found = false;
                 string id = (string)array[i]["id"];
                 if ((string)array[i]["type"] == "vehicle_part")
                 {
                     id = "vp_" + id;
                 }
                 foreach (string s1 in tileID)
                 {
                     if (!found)
                     {
                         if (s1 == id)
                         {
                             found = true;
                         }
                     }
                 }
                 if (!found)
                 {
                    writing.Add(id);
                 }
             }
         }
         //Now to write the missing.txt
         if (saveFile.ShowDialog() == DialogResult.OK)
         {
             status.Text = "Status: Writing missing.txt";
             File.WriteAllText(saveFile.FileName, "");
             StreamWriter writer = new StreamWriter(saveFile.FileName);
             foreach (string s in writing)
             {
                 writer.WriteLine(s);
             }
             writer.Close();
         }
         status.Text = "Status: Done!";
     }
 }
Beispiel #28
0
 /// <summary>
 /// Reads the internal global .json file of a given platform and 
 /// returns the unmarshalled database object.
 /// </summary>
 /// <returns>Deserialized object or empty database if no file exists or parsing error</returns>
 private GlobalDatabase UnmarshallDatabase()
 {
     if (!File.Exists(_dbPath)) {
         _logger.Info("Creating new global database, {0} not found.", _dbPath);
         return null;
     }
     try {
         using (var sr = new StreamReader(_dbPath))
         using (JsonReader reader = new JsonTextReader(sr)) {
             try {
                 var db = _serializer.Deserialize<GlobalDatabase>(reader);
                 reader.Close();
                 return db;
             } catch (Exception e) {
                 _logger.Error(e, "Error parsing {0}, deleting and ignoring.", _dbPath);
                 _crashManager.Report(e, "json");
                 reader.Close();
                 File.Delete(_dbPath);
                 return null;
             }
         }
     } catch (Exception e) {
         _logger.Error(e, "Error reading {0}, deleting and ignoring.", _dbPath);
         _crashManager.Report(e, "json");
         return null;
     }
 }
Beispiel #29
0
 public static string SyncJsonObjectTypes(string OldJson, string NewJson)
 {
     StringReader NSR = new StringReader(NewJson);
     JsonTextReader New = new JsonTextReader(NSR);
     StringReader OSR = new StringReader(OldJson);
     JsonTextReader Old = new JsonTextReader(OSR);
     StringWriter SW = new StringWriter();
     JsonTextWriter Writer = new JsonTextWriter(SW);
     while (New.Read() && Old.Read())
     {
         if ((Old.TokenType == JsonToken.Integer) && (New.TokenType != JsonToken.Integer))
         {
             int NewIntValue = 0;
             if (Int32.TryParse(New.Value.ToString(), out NewIntValue))
             {
                 Writer.WriteValue(NewIntValue);
             }
             else
             {
                 Writer.WriteValue(New.Value);
             }
         }
         else if ((Old.TokenType == JsonToken.Float) && (New.TokenType != JsonToken.Float))
         {
             float NewFloatValue = 0;
             if (float.TryParse(New.Value.ToString(), out NewFloatValue))
             {
                 Writer.WriteValue(NewFloatValue);
             }
             else
             {
                 Writer.WriteValue(New.Value);
             }
         }
         else if ((Old.TokenType == JsonToken.Boolean) && (New.TokenType != JsonToken.Boolean))
         {
             string Value = New.Value.ToString();
             if (Value.Equals("true"))
             {
                 Writer.WriteValue(true);
             }
             else if (Value.Equals("false"))
             {
                 Writer.WriteValue(false);
             }
             else
             {
                 Writer.WriteValue(New.Value);
             }
         }
         else if ((Old.TokenType == JsonToken.String) && (New.TokenType == JsonToken.Null))
         {
             Writer.WriteValue("");
         }
         else if ((Old.TokenType == JsonToken.StartArray) && (New.TokenType == JsonToken.String))
         {
             Old.Read();
             if (Old.TokenType == JsonToken.EndArray)
             {
                 Writer.WriteValue(JsonToken.StartArray);
                 if (New.Value.ToString() != "") Writer.WriteValue(New.Value);
                 Writer.WriteValue(JsonToken.EndArray);
             }
             else
             {
                 Writer.WriteValue(New.Value);
             }
         }
         else
         {
             if (Old.TokenType != New.TokenType)
             {
                 Writer.Close();
                 New.Close();
                 Old.Close();
                 return NewJson;
             }
             else if (New.TokenType == JsonToken.PropertyName)
             {
                 if (Old.Value == null || New.Value == null)
                 {
                     Writer.Close();
                     New.Close();
                     Old.Close();
                     return NewJson;
                 }
                 else if (!Old.Value.ToString().Equals(New.Value.ToString()))
                 {
                     Writer.Close();
                     New.Close();
                     Old.Close();
                     return NewJson;
                 }
             }
             switch (New.TokenType)
             {
                 case JsonToken.StartConstructor:
                     Writer.WriteStartConstructor("");
                     break;
                 case JsonToken.EndConstructor:
                     Writer.WriteEndConstructor();
                     break;
                 case JsonToken.StartObject:
                     Writer.WriteStartObject();
                     break;
                 case JsonToken.EndObject:
                     Writer.WriteEndObject();
                     break;
                 case JsonToken.StartArray:
                     Writer.WriteStartArray();
                     break;
                 case JsonToken.EndArray:
                     Writer.WriteEndArray();
                     break;
                 case JsonToken.PropertyName:
                     Writer.WritePropertyName(New.Value.ToString());
                     break;
                 case JsonToken.String:
                 case JsonToken.Integer:
                 case JsonToken.Boolean:
                 case JsonToken.Date:
                 case JsonToken.Null:
                 case JsonToken.Float:
                     Writer.WriteValue(New.Value);
                     break;
             }
         }
     }
     return SW.ToString();
 }
Beispiel #30
0
        /// <summary>
        /// imports the data from the file into the database
        /// (only newer data will be imported)
        /// </summary>
        /// <param name="fileName"></param>
        public void ImportSystems(String Filename)
        {
            DBConnector               lDBCon = null;
            String sqlString;
            List<EDSystem> Systems;
            EDSystem importSystem;
            dsEliteDB.tbsystemsRow[] FoundRows;
            dsEliteDB.tbsystems_orgRow[] FoundRows_org;
            DateTime Timestamp_new, Timestamp_old;
            Int32 ImportCounter = 0;
            Dictionary<Int32, Int32> changedSystemIDs = new Dictionary<Int32, Int32>();
            dsEliteDB localDataSet;
            Int32 counter = 0;
            
            Boolean dataChanged;
            localDataSet = new dsEliteDB();
            Int32 updated = 0;
            Int32 added = 0;
            MySql.Data.MySqlClient.MySqlDataAdapter dataAdapter_sys = null;
            MySql.Data.MySqlClient.MySqlDataAdapter dataAdapter_sysorg = null;
            Int32 systemsTotal=0;

            try
            {
                lDBCon = new DBConnector(Program.DBCon.ConfigData, true);

                // gettin' some freaky performance
                lDBCon.Execute("set global innodb_flush_log_at_trx_commit=2");
                StreamReader rawDataStream;
                JsonTextReader jsonReader;
                JsonSerializer serializer = new JsonSerializer();

                rawDataStream = new StreamReader(Filename);
                jsonReader = new JsonTextReader(rawDataStream);

                sendProgressEvent(new ProgressEventArgs() {  Info="import systems...", NewLine = true } );

                while (jsonReader.Read())
                    if((jsonReader.TokenType == JsonToken.StartObject) && (jsonReader.Depth == 1))
                        systemsTotal++;

                jsonReader.Close();
                rawDataStream.Close();
                rawDataStream.Dispose();

                rawDataStream = new StreamReader(Filename);
                jsonReader = new JsonTextReader(rawDataStream);

                while(jsonReader.Read())
                {
                    if((jsonReader.TokenType == JsonToken.StartObject) && (jsonReader.Depth == 1))
                    {
                        dataChanged = false;

                        importSystem = serializer.Deserialize<EDSystem>(jsonReader);

                        localDataSet.Clear();
                        if(dataAdapter_sys != null)
                        {
                            dataAdapter_sys.Dispose();
                            dataAdapter_sys = null;
                        }

                        if(dataAdapter_sysorg != null)
                        {
                            dataAdapter_sysorg.Dispose();
                            dataAdapter_sysorg = null;
                        }

                        lDBCon.TableRead(String.Format("select * from tbSystems where id = {0} lock in share mode;", importSystem.Id), localDataSet.tbsystems, ref dataAdapter_sys);

                        //sqlString = "select * from tbSystems_org lock in share mode";
                        //lDBCon.TableRead(sqlString, Data.tbsystems_org);

                        if (localDataSet.tbsystems.Rows.Count > 0)
                        {
                            // system is existing

                            if ((bool)(localDataSet.tbsystems.Rows[0]["is_changed"]))
                            {
                                // data is changed by user - hold it ...

                                // ...and check table "tbSystems_org" for the original data
                                lDBCon.TableRead(String.Format("select * from tbSystems_org where id = {0} lock in share mode;", importSystem.Id), localDataSet.tbsystems_org, ref dataAdapter_sysorg);

                                if (localDataSet.tbsystems_org.Rows.Count > 0)
                                {
                                    // system is in "tbSystems_org" existing - keep the newer version 
                                    Timestamp_old = (DateTime)(localDataSet.tbsystems_org.Rows[0]["updated_at"]);
                                    Timestamp_new = DateTimeOffset.FromUnixTimeSeconds(importSystem.UpdatedAt).DateTime;

                                    if (Timestamp_new > Timestamp_old)
                                    {
                                        // data from file is newer
                                        CopyEDSystemToDataRow(importSystem, (DataRow)localDataSet.tbsystems_org.Rows[0], false, null, true);
                                        ImportCounter += 1;
                                        dataChanged = true;
                                    }
                                }
                            }
                            else
                            {
                                // system is existing - keep the newer version 
                                Timestamp_old = (DateTime)(localDataSet.tbsystems.Rows[0]["updated_at"]);
                                Timestamp_new = DateTimeOffset.FromUnixTimeSeconds(importSystem.UpdatedAt).DateTime;

                                if (Timestamp_new > Timestamp_old)
                                {
                                    // data from file is newer
                                    CopyEDSystemToDataRow(importSystem, localDataSet.tbsystems.Rows[0], false, null, true);
                                    ImportCounter += 1;
                                    dataChanged = true;
                                    updated += 1;
                                }
                            }
                        }
                        else
                        {
                            if(dataAdapter_sys != null)
                            {
                                dataAdapter_sys.Dispose();
                                dataAdapter_sys = null;
                            }

                            // check if there's a user generated system
                            // self-created systems don't have the correct id so it must be identified by name    
                            lDBCon.TableRead(String.Format("select * from tbSystems where systemname = {0} and id < 0 lock in share mode;", DBConnector.SQLAEscape(importSystem.Name.ToString()) ), localDataSet.tbsystems, ref dataAdapter_sys);

                            if (localDataSet.tbsystems.Rows.Count > 0)
                            {
                                // self created systems is existing -> correct id and get new data from EDDB
                                // (changed system_id in tbStations are automatically internal updated by the database itself)
                                CopyEDSystemToDataRow(importSystem, (DataRow)localDataSet.tbsystems.Rows[0], false, null, true);
                                dataChanged = true;
                            }
                            else
                            {
                                // add a new system
                                dsEliteDB.tbsystemsRow newRow = (dsEliteDB.tbsystemsRow)localDataSet.tbsystems.NewRow();
                                CopyEDSystemToDataRow(importSystem, (DataRow)newRow, false, null, true);
                                localDataSet.tbsystems.Rows.Add(newRow);
                                dataChanged = true;
                            }

                            added += 1;
                            ImportCounter += 1;
                        }

                        if(dataChanged)
                        {
                            if(localDataSet.tbsystems.Rows.Count > 0)
                                lDBCon.TableUpdate(localDataSet.tbsystems, dataAdapter_sys);

                            if(localDataSet.tbsystems_org.Rows.Count > 0)
                                lDBCon.TableUpdate(localDataSet.tbsystems_org, dataAdapter_sysorg);

                            dataChanged = false;
                        }

                        counter++;
                        
                        if(sendProgressEvent(new ProgressEventArgs() { Info = String.Format("import systems : analysed={0}, updated={1}, added={2}", counter, ImportCounter-added, added), CurrentValue=counter, TotalValue=systemsTotal}))
                            break;
                    }
                }

                // reset freaky performance
                lDBCon.Execute("set global innodb_flush_log_at_trx_commit=1");

                lDBCon.Dispose();

            }
            catch (Exception ex)
            {
                if(lDBCon != null)
                {
                    if (lDBCon.TransActive())
                        lDBCon.TransRollback();

                    try
                    {
                        // reset freaky performance
                        lDBCon.Execute("set global innodb_flush_log_at_trx_commit=1");
                        lDBCon.Dispose();
                    }
                    catch (Exception) { }
                }

                throw new Exception("Error while importing system data", ex);
            }
        }
Beispiel #31
0
 public void ReadText(string text)
 {
   JsonReader r = new JsonTextReader(new StringReader(text));
   r.Close();
 }
Beispiel #32
0
        public void DeserializeRequest(Message message, object[] parameters)
        {
            object bodyFormatProperty;

            if (!message.Properties.TryGetValue(WebBodyFormatMessageProperty.Name, out bodyFormatProperty) ||
                (bodyFormatProperty as WebBodyFormatMessageProperty).Format != WebContentFormat.Raw)
            {
                throw new InvalidOperationException("Incoming messages must have a body format of Raw. Is a ContentTypeMapper set on the WebHttpBinding?");
            }

            XmlDictionaryReader bodyReader = message.GetReaderAtBodyContents();

            bodyReader.ReadStartElement("Binary");
            byte[]       rawBody = bodyReader.ReadContentAsBase64();
            MemoryStream ms      = new MemoryStream(rawBody);

            StreamReader sr = new StreamReader(ms);

            Newtonsoft.Json.JsonSerializer serializer = new Newtonsoft.Json.JsonSerializer();
            if (parameters.Length == 1)
            {
                string contenido = sr.ReadToEnd();
                if (contenido.StartsWith("{\"Querye\":"))
                {
                    contenido = contenido.Substring("{\"Querye\":".Length);
                    contenido = contenido.Substring(0, contenido.Length - 1);
                }
                // single parameter, assuming bare
                parameters[0] = JsonConvert.DeserializeObject(contenido, operation.Messages[0].Body.Parts[0].Type);
            }
            else
            {
                // multiple parameter, needs to be wrapped
                Newtonsoft.Json.JsonReader reader = new Newtonsoft.Json.JsonTextReader(sr);
                reader.Read();
                if (reader.TokenType != Newtonsoft.Json.JsonToken.StartObject)
                {
                    throw new InvalidOperationException("Input needs to be wrapped in an object");
                }

                reader.Read();
                while (reader.TokenType == Newtonsoft.Json.JsonToken.PropertyName)
                {
                    string parameterName = reader.Value as string;
                    reader.Read();
                    if (this.parameterNames.ContainsKey(parameterName))
                    {
                        int parameterIndex = this.parameterNames[parameterName];
                        parameters[parameterIndex] = serializer.Deserialize(reader, this.operation.Messages[0].Body.Parts[parameterIndex].Type);
                    }
                    else
                    {
                        reader.Skip();
                    }

                    reader.Read();
                }

                reader.Close();
            }

            sr.Close();
            ms.Close();
        }
Beispiel #33
0
        public PlatformDatabase UnmarshallPlatformDatabase(string databaseFile)
        {
            if (!File.Exists(databaseFile)) {
                return new PlatformDatabase();
            }

            _logger.Info("Reading game database from {0}...", databaseFile);
            try {
                using (var sr = new StreamReader(databaseFile))
                using (JsonReader reader = new JsonTextReader(sr)) {
                    try {
                        var db = _serializer.Deserialize<PlatformDatabase>(reader);
                        reader.Close();
                        return db ?? new PlatformDatabase();
                    } catch (Exception e) {
                        _logger.Error(e, "Error parsing vpdb.json, deleting and ignoring.");
                        _crashManager.Report(e, "json");
                        reader.Close();
                        File.Delete(databaseFile);
                        return new PlatformDatabase();
                    }
                }
            } catch (Exception e) {
                _logger.Error(e, "Error reading vpdb.json, deleting and ignoring.");
                _crashManager.Report(e, "json");
                return new PlatformDatabase();
            }
        }