Ejemplo n.º 1
0
        public static RootInfo ParseJson(string jsonString)
        {
            Hyena.Json.Deserializer deserializer =
                new Hyena.Json.Deserializer(jsonString);
            object obj = deserializer.Deserialize();

            Hyena.Json.JsonObject jsonObj =
                obj as Hyena.Json.JsonObject;
            if (jsonObj == null)
            {
                throw new ArgumentException("jsonString does not contain a valid RootInfo representation");
            }

            // TODO: Checks
            RootInfo root = new RootInfo();

            root.ApiVersion = (string)jsonObj ["api-version"];

            object val;

            if (jsonObj.TryGetValue("user-ref", out val))
            {
                Hyena.Json.JsonObject userRefJsonObj = (Hyena.Json.JsonObject)val;

                root.User =
                    ResourceReference.ParseJson(userRefJsonObj);
            }

            root.AuthorizeUrl    = (string)jsonObj ["oauth_authorize_url"];
            root.AccessTokenUrl  = (string)jsonObj ["oauth_access_token_url"];
            root.RequestTokenUrl = (string)jsonObj ["oauth_request_token_url"];

            return(root);
        }
Ejemplo n.º 2
0
        public static UserInfo ParseJson(string jsonString)
        {
            Hyena.Json.Deserializer deserializer =
                new Hyena.Json.Deserializer(jsonString);
            object obj = deserializer.Deserialize();

            Hyena.Json.JsonObject jsonObj =
                obj as Hyena.Json.JsonObject;
            if (jsonObj == null)
            {
                throw new ArgumentException("jsonString does not contain a valid UserInfo representation");
            }

            // TODO: Checks
            UserInfo user = new UserInfo();

            user.UserName  = (string)jsonObj ["user-name"];
            user.FirstName = (string)jsonObj ["first-name"];
            user.LastName  = (string)jsonObj ["last-name"];

            object val;

            if (jsonObj.TryGetValue("latest-sync-revision", out val))
            {
                user.LatestSyncRevision = (int)val;
            }
            else
            {
                user.LatestSyncRevision = -1;
            }

            if (jsonObj.TryGetValue("current-sync-guid", out val))
            {
                user.CurrentSyncGuid = (string)val;
            }

            Hyena.Json.JsonObject notesRefJsonObj =
                (Hyena.Json.JsonObject)jsonObj ["notes-ref"];
            user.Notes =
                ResourceReference.ParseJson(notesRefJsonObj);

            if (jsonObj.TryGetValue("friends-ref", out val))
            {
                user.Notes =
                    ResourceReference.ParseJson((Hyena.Json.JsonObject)val);
            }

            return(user);
        }
Ejemplo n.º 3
0
        public static NoteInfo ParseJson(Hyena.Json.JsonObject jsonObj)
        {
            if (jsonObj == null)
            {
                throw new ArgumentException("jsonObj does not contain a valid NoteInfo representation");
            }

            // TODO: Checks
            NoteInfo note = new NoteInfo();

            note.Guid = (string)jsonObj ["guid"];

            // TODO: Decide how much is required
            object val;

            if (jsonObj.TryGetValue(TitleElementName, out val))
            {
                note.Title = (string)val;
            }
            if (jsonObj.TryGetValue(NoteContentElementName, out val))
            {
                note.NoteContent = (string)val;
            }
            if (jsonObj.TryGetValue(NoteContentVersionElementName, out val))
            {
                note.NoteContentVersion = (double)val;
            }

            if (jsonObj.TryGetValue(LastChangeDateElementName, out val))
            {
                note.LastChangeDate = DateTime.Parse((string)val);
            }
            if (jsonObj.TryGetValue(LastMetadataChangeDateElementName, out val))
            {
                note.LastMetadataChangeDate = DateTime.Parse((string)val);
            }
            if (jsonObj.TryGetValue(CreateDateElementName, out val))
            {
                note.CreateDate = DateTime.Parse((string)val);
            }

            if (jsonObj.TryGetValue(LastSyncRevisionElementName, out val))
            {
                note.LastSyncRevision = (int)val;
            }
            if (jsonObj.TryGetValue(OpenOnStartupElementName, out val))
            {
                note.OpenOnStartup = (bool)val;
            }
            if (jsonObj.TryGetValue(PinnedElementName, out val))
            {
                note.Pinned = (bool)val;
            }

            if (jsonObj.TryGetValue(TagsElementName, out val))
            {
                Hyena.Json.JsonArray tagsJsonArray =
                    (Hyena.Json.JsonArray)val;
                note.Tags = new List <string> (tagsJsonArray.Count);
                foreach (string tag in tagsJsonArray)
                {
                    note.Tags.Add(tag);
                }
            }

            if (jsonObj.TryGetValue(ResourceReferenceElementName, out val))
            {
                note.ResourceReference =
                    ResourceReference.ParseJson((Hyena.Json.JsonObject)val);
            }

            return(note);
        }
Ejemplo n.º 4
0
        public static NoteInfo ParseJson(Hyena.Json.JsonObject jsonObj)
        {
            if (jsonObj == null)
            {
                throw new ArgumentException("jsonObj does not contain a valid NoteInfo representation");
            }

            // TODO: Checks
            NoteInfo note = new NoteInfo();

            note.Guid = (string)jsonObj ["guid"];

            // TODO: Decide how much is required
            object val = 0;
            string key = "<unknown>";

            try {
                key = TitleElementName;
                if (jsonObj.TryGetValue(key, out val))
                {
                    note.Title = (string)val;
                }
                key = NoteContentElementName;
                if (jsonObj.TryGetValue(key, out val))
                {
                    note.NoteContent = (string)val;
                }
                key = NoteContentVersionElementName;
                if (jsonObj.TryGetValue(key, out val))
                {
                    note.NoteContentVersion = (double)val;
                }

                key = LastChangeDateElementName;
                if (jsonObj.TryGetValue(key, out val))
                {
                    note.LastChangeDate = DateTime.Parse((string)val);
                }
                key = LastMetadataChangeDateElementName;
                if (jsonObj.TryGetValue(key, out val))
                {
                    note.LastMetadataChangeDate = DateTime.Parse((string)val);
                }
                key = CreateDateElementName;
                if (jsonObj.TryGetValue(key, out val))
                {
                    note.CreateDate = DateTime.Parse((string)val);
                }

                key = LastSyncRevisionElementName;
                if (jsonObj.TryGetValue(key, out val))
                {
                    note.LastSyncRevision = (int)val;
                }
                key = OpenOnStartupElementName;
                if (jsonObj.TryGetValue(key, out val))
                {
                    note.OpenOnStartup = (bool)val;
                }
                key = PinnedElementName;
                if (jsonObj.TryGetValue(key, out val))
                {
                    note.Pinned = (bool)val;
                }

                key = TagsElementName;
                if (jsonObj.TryGetValue(key, out val))
                {
                    Hyena.Json.JsonArray tagsJsonArray =
                        (Hyena.Json.JsonArray)val;
                    note.Tags = new List <string> (tagsJsonArray.Count);
                    foreach (string tag in tagsJsonArray)
                    {
                        note.Tags.Add(tag);
                    }
                }

                key = ResourceReferenceElementName;
                if (jsonObj.TryGetValue(key, out val))
                {
                    note.ResourceReference =
                        ResourceReference.ParseJson((Hyena.Json.JsonObject)val);
                }
            } catch (InvalidCastException e) {
                Logger.Error("Note '{0}': Key '{1}', value  '{2}' failed to parse due to invalid type", note.Guid, key, val);
                throw e;
            }

            return(note);
        }