public IDictionary <string, NoteUpdate> GetNoteUpdatesSince(int revision)
        {
            IDictionary <string, NoteUpdate> updatedNotes = new Dictionary <string, NoteUpdate>();

            Evernote.EDAM.NoteStore.SyncState syncState = _noteStore.getSyncState(_authToken);
            // see if anything has changed
            // TODO - this check might be redundant, as Tomboy calls LatestRevision() beforehand
            if (syncState.UpdateCount <= revision)
            {
                return(updatedNotes);
            }
            if (revision < 0)
            {
                revision = 0;
            }
            //if we got this far, then Something has changed

            Evernote.EDAM.NoteStore.SyncChunk syncChunk;
            try
            {
                syncChunk = _noteStore.getSyncChunk(_authToken, revision, Int32.MaxValue, false);
            }
            catch (Exception e)
            {
                Logger.Error("[Evernote] Failure in getSyncChunk: " + e);
                return(updatedNotes);
            }
            if (syncChunk.Notes == null)
            {
                return(updatedNotes);
            }
            //every note we have should be new or updated, so tell Tomboy about it
            foreach (Evernote.EDAM.Type.Note note in syncChunk.Notes)
            {
                if (note.NotebookGuid != _tomboyNotebook.Guid)
                {
                    continue;
                }
                string content = "";
                try
                {
                    content = CreateTomboyNoteContent(note);
                }
                catch (XmlSchemaValidationException e)
                {
                    content = "Evernote had invalid XML";
                }
                catch (Exception e)
                {
                    Logger.Error("[Evernote] Unknown error creating Tomboy Note from Evernote:" + e + "\nEvernote: " + note);
                }
                string     guid   = GetCorrectGuid(note);
                NoteUpdate update = new NoteUpdate(content, note.Title, guid, note.UpdateSequenceNum);
                updatedNotes.Add(note.Guid, update);
            }
            return(updatedNotes);
        }
Ejemplo n.º 2
0
 public void Read (TProtocol iprot)
 {
   TField field;
   iprot.ReadStructBegin();
   while (true)
   {
     field = iprot.ReadFieldBegin();
     if (field.Type == TType.Stop) { 
       break;
     }
     switch (field.ID)
     {
       case 0:
         if (field.Type == TType.Struct) {
           Success = new SyncState();
           Success.Read(iprot);
         } else { 
           TProtocolUtil.Skip(iprot, field.Type);
         }
         break;
       case 1:
         if (field.Type == TType.Struct) {
           UserException = new Evernote.EDAM.Error.EDAMUserException();
           UserException.Read(iprot);
         } else { 
           TProtocolUtil.Skip(iprot, field.Type);
         }
         break;
       case 2:
         if (field.Type == TType.Struct) {
           SystemException = new Evernote.EDAM.Error.EDAMSystemException();
           SystemException.Read(iprot);
         } else { 
           TProtocolUtil.Skip(iprot, field.Type);
         }
         break;
       case 3:
         if (field.Type == TType.Struct) {
           NotFoundException = new Evernote.EDAM.Error.EDAMNotFoundException();
           NotFoundException.Read(iprot);
         } else { 
           TProtocolUtil.Skip(iprot, field.Type);
         }
         break;
       default: 
         TProtocolUtil.Skip(iprot, field.Type);
         break;
     }
     iprot.ReadFieldEnd();
   }
   iprot.ReadStructEnd();
 }