Esempio n. 1
0
        internal void Save()
        {
            //http://www.newtonsoft.com/json/help/html/DeserializeWithJsonSerializerFromFile.htm
            //http://www.newtonsoft.com/json/help/html/SerializeWithJsonSerializerToFile.htm

            SolutionMarks solutionMarks = new SolutionMarks();

            //TODO: Can this be done with stream reader? can i read through file removing, adding, and modifying content within the stream?
            using (var sr = new StreamReader(File.Open(jsonContext.FullFilePath, FileMode.OpenOrCreate)))
                using (var jsonTextReader = new JsonTextReader(sr))
                {
                    //return JContext.SerializerDeserializer.Deserialize<SolutionMarks>(jsonTextReader).Bookmarks;
                    //get solution marks
                    solutionMarks = jsonContext.SerializerDeserializer.Deserialize <SolutionMarks>(jsonTextReader);

                    //check if solutionmarks is null
                    if (solutionMarks == null)
                    {
                        solutionMarks = new SolutionMarks();
                    }

                    //delete bookmarks
                    if (Bookmarks.DeleteMarks != null)
                    {
                        foreach (Guid id in Bookmarks.DeleteMarks)
                        {
                            for (int i = 0; i < solutionMarks.Bookmarks.Count; i++)
                            {
                                if (Bookmarks.DeleteMarks.Contains(solutionMarks.Bookmarks[i].id))
                                {
                                    solutionMarks.Bookmarks.Remove(solutionMarks.Bookmarks[i]);
                                    break;
                                }
                            }
                        }
                    }

                    if (Bookmarks.CreatedMarks != null)
                    {
                        foreach (var bMark in Bookmarks.CreatedMarks)
                        {
                            //add bookmarks
                            if (solutionMarks.Bookmarks.Any(a => a.id == bMark.id))
                            {
                                //modify bookmarks
                                var index = solutionMarks.Bookmarks.FindIndex(x => x.id == bMark.id);
                                solutionMarks.Bookmarks[index] = bMark;
                            }
                            else
                            {
                                AddBookmark(solutionMarks, bMark);
                            }
                        }
                    }
                }
            //save file
            SaveToFile(solutionMarks);
        }
Esempio n. 2
0
 private void SaveToFile(SolutionMarks solutionMarks)
 {
     using (StreamWriter sw = new StreamWriter(File.Open(jsonContext.FullFilePath, FileMode.OpenOrCreate)))
     {
         sw.Flush();
         using (JsonWriter jw = new JsonTextWriter(sw))
         {
             jsonContext.SerializerDeserializer.Serialize(jw, solutionMarks);
         }
         sw.Close();
     }
 }
Esempio n. 3
0
        private void AddBookmark(SolutionMarks solutionMarks, Bookmark bMark)
        {
            //create new guid
            Guid nwGuid = Guid.NewGuid();

            //insure new guid not in list of current
            while (solutionMarks.Bookmarks.Any(a => a.id == nwGuid))
            {
                nwGuid = Guid.NewGuid();
            }
            bMark.id = nwGuid;

            solutionMarks.Bookmarks.Add(bMark);
        }