예제 #1
0
        /// <summary>
        /// create/update note and return new note data
        /// </summary>
        internal static NoteData pushNote(NoteItem note, SQLiteConnection sql)
        {
            var js   = new JavaScriptSerializer();
            var node = new NoteDataUser();

            node.deleted    = (note.Deleted) ? (byte)1 : (byte)0;
            node.modifydate = note.ModifyDate.ToString("R").Replace(',', '.');
            node.tags       = new string[note.Tags.Count];
            for (int i = 0; i < note.Tags.Count; i++)
            {
                node.tags[i] = note.Tags[i].Name;
            }

            //read additional info from db
            var systemtags = "";

            using (SQLiteCommand cmd = new SQLiteCommand(sql)) {
                cmd.CommandText = "SELECT content, createdate, systemtags, version FROM notes WHERE id=" + note.Id;
                using (SQLiteDataReader rdr = cmd.ExecuteReader()) {
                    while (rdr.Read())
                    {
                        node.content    = rdr.GetString(0);
                        node.createdate = rdr.GetDouble(1).ToString("R").Replace(',', '.');;
                        if (!rdr.IsDBNull(2))
                        {
                            systemtags = rdr.GetString(2);
                        }
                        if (!rdr.IsDBNull(3))
                        {
                            node.version = rdr.GetInt32(3);
                        }
                    }
                }
            }
            // fill systemtags
            if (note.Pinned)
            {
                systemtags += " pinned";
            }
            if (note.Unread)
            {
                systemtags += " unread";
            }
            if (!string.IsNullOrEmpty(note.Lexer))
            {
                systemtags += " sn-lexer=" + note.Lexer;
            }
            node.systemtags = systemtags.Trim().Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
            var data = js.Serialize(node);

            var url = (string.IsNullOrEmpty(note.Key)) ? "/api2/data" : "/api2/data/" + note.Key; // create/update
            var s   = RequestRetry(url, "POST", data);

            return(js.Deserialize <NoteData>(s));
        }
예제 #2
0
        /// <summary>
        /// create/update note and return new note data
        /// </summary>
        internal static NoteData pushNote(NoteItem note, SQLiteConnection sql)
        {
            var js = new JavaScriptSerializer();
              var node = new NoteDataUser();
              node.deleted = (note.Deleted) ? (byte)1 : (byte)0;
              node.modifydate = note.ModifyDate.ToString("R").Replace(',','.');
              node.tags = new string[note.Tags.Count];
              for (int i = 0; i < note.Tags.Count; i++) node.tags[i] = note.Tags[i].Name;

              //read additional info from db
              var systemtags="";
              using (SQLiteCommand cmd = new SQLiteCommand(sql)) {
            cmd.CommandText = "SELECT content, createdate, systemtags, version FROM notes WHERE id=" + note.Id;
            using (SQLiteDataReader rdr = cmd.ExecuteReader()) {
              while (rdr.Read()) {
            node.content = rdr.GetString(0);
            node.createdate = rdr.GetDouble(1).ToString("R").Replace(',','.');;
            if (!rdr.IsDBNull(2)) systemtags = rdr.GetString(2);
            if (!rdr.IsDBNull(3)) node.version = rdr.GetInt32(3);
              }
            }
              }
              // fill systemtags
              if (note.Pinned) systemtags += " pinned";
              if (note.Unread) systemtags += " unread";
              if (!string.IsNullOrEmpty(note.Lexer)) systemtags += " sn-lexer=" + note.Lexer;
              node.systemtags = systemtags.Trim().Split(new char[] {' '}, StringSplitOptions.RemoveEmptyEntries);
              var data = js.Serialize(node);

              var url = (string.IsNullOrEmpty(note.Key)) ? "/api2/data" : "/api2/data/"+note.Key; // create/update
              var s = RequestRetry(url, "POST", data);
              return js.Deserialize<NoteData>(s);
        }