Example #1
0
        private void Form1_Load(object sender, EventArgs e)
        {
            // Be sure to put your own consumer key and consumer secret here.
            ENSession.SetSharedSessionConsumerKey("your key", "your secret");

            if (ENSession.SharedSession.IsAuthenticated == false)
            {
                ENSession.SharedSession.AuthenticateToEvernote();
            }

            // Get a list of all notebooks in the user's account.
            List<ENNotebook> myNotebookList = ENSession.SharedSession.ListNotebooks();

            // Create a new note (in the user's default notebook) with some plain text content.
            ENNote myPlainNote = new ENNote();
            myPlainNote.Title = "My plain text note";
            myPlainNote.Content = ENNoteContent.NoteContentWithString("Hello, world!");
            ENNoteRef myPlainNoteRef = ENSession.SharedSession.UploadNote(myPlainNote, null);

            // Share this new note publicly.  "shareUrl" is the public URL to distribute to access the note.
            string shareUrl = ENSession.SharedSession.ShareNote(myPlainNoteRef);

            // Create a new note (in the user's default notebook) with some HTML content.
            ENNote myFancyNote = new ENNote();
            myFancyNote.Title = "My first note";
            myFancyNote.Content = ENNoteContent.NoteContentWithSanitizedHTML("<p>Hello, world - <i>this</i> is a <b>fancy</b> note - and here is a table:</p><br /> <br/><table border=\"1\" cellpadding=\"2\" cellspacing=\"0\" width=\"100%\"><tr><td>Red</td><td>Green</td></tr><tr><td>Blue</td><td>Yellow</td></tr></table>");
            ENNoteRef myFancyNoteRef = ENSession.SharedSession.UploadNote(myFancyNote, null);

            // Delete the HTML content note we just created.
            ENSession.SharedSession.DeleteNote(myFancyNoteRef);

            // Create a new note with a resource.
            ENNote myResourceNote = new ENNote();
            myResourceNote.Title = "My test note with a resource";
            myResourceNote.Content = ENNoteContent.NoteContentWithString("Hello, resource!");
            byte[] myFile = StreamFile("<complete path and filename of a JPG file on your computer>");    // Be sure to replace this with a real JPG file
            ENResource myResource = new ENResource(myFile, "image/jpg", "My First Picture.jpg");
            myResourceNote.Resources.Add(myResource);
            ENNoteRef myResourceRef = ENSession.SharedSession.UploadNote(myResourceNote, null);

            // Search for some text across all notes (i.e. personal, shared, and business).
            // Change the Search Scope parameter to limit the search to only personal, shared, business - or combine flags for some combination.
            string textToFind = "some text to find*";
            List<ENSessionFindNotesResult> myNotesList = ENSession.SharedSession.FindNotes(ENNoteSearch.NoteSearch(textToFind), null, ENSession.SearchScope.All, ENSession.SortOrder.RecentlyUpdated, 500);
            int personalCount = 0;
            int sharedCount = 0;
            int businessCount = 0;
            foreach (ENSessionFindNotesResult note in myNotesList)
            {
                if (note.NoteRef.Type == ENNoteRef.ENNoteRefType.TypePersonal)
                {
                    personalCount ++;
                }
                else if (note.NoteRef.Type == ENNoteRef.ENNoteRefType.TypeShared)
                {
                    sharedCount ++;
                }
                else if (note.NoteRef.Type == ENNoteRef.ENNoteRefType.TypeBusiness)
                {
                    businessCount ++;
                }
            }

            if (myNotesList.Count > 0)
            {
                // Given a NoteRef instance, download that note.
                ENNote myDownloadedNote = ENSession.SharedSession.DownloadNote(myNotesList[0].NoteRef);

                // Serialize a NoteRef.
                byte[] mySavedRef = myNotesList[0].NoteRef.AsData();
                // And deserialize it.
                ENNoteRef newRef = ENNoteRef.NoteRefFromData(mySavedRef);

                // Download the thumbnail for a note; then display it on this app's form.
                byte[] thumbnail = ENSession.SharedSession.DownloadThumbnailForNote(myNotesList[0].NoteRef, 120);
                try
                {
                    MemoryStream ms = new MemoryStream(thumbnail, 0, thumbnail.Length);
                    ms.Position = 0;
                    System.Drawing.Image image1 = System.Drawing.Image.FromStream(ms, false, false);
                    pictureBoxThumbnail.Image = image1;
                }
                catch (Exception ex)
                {
                    throw new Exception(ex.Message);
                }

            }

        }
		public ENNoteRef UploadNote(ENNote note, ENSession.UploadPolicy policy, ENNotebook notebook, ENNoteRef noteToReplace)
		{

			if (note == null)
			{
				ENSDKLogger.ENSDKLogError("Must specify note");
				throw new ENInvalidDataException();
			}

			if (policy == UploadPolicy.Replace && noteToReplace == null || policy == UploadPolicy.ReplaceOrCreate && noteToReplace == null)
			{
				ENSDKLogger.ENSDKLogError("Must specify existing ID when requesting a replacement policy");
				throw new ENInvalidDataException();
			}

			if (policy == UploadPolicy.Create && noteToReplace != null)
			{
				ENSDKLogger.ENSDKLogError("Can't use create policy when specifying an existing note ref. Ignoring.");
				noteToReplace = null;
			}

			if (notebook != null && !notebook.AllowsWriting)
			{
				var errorMessage = "A specified notebook must not be readonly";
				ENSDKLogger.ENSDKLogError(errorMessage);
				throw new ArgumentException(errorMessage);
			}

			if (!IsAuthenticated)
			{
				throw new ENAuthExpiredException();
			}

			// Run size validation on any resources included with the note. This is done at upload time because
			// the sizes are a function of the user's service level, which can change.
			if (!note.ValidateForLimits())
			{
				ENSDKLogger.ENSDKLogError("Note failed limits validation. Cannot upload.");
				throw new ENLimitReachedException();
			}

			ENSessionUploadContext context = new ENSessionUploadContext();
			if (noteToReplace != null)
			{
				context.Note = note.EDAMNoteToReplaceServiceNoteGUID(noteToReplace.Guid);
			}
			else
			{
				context.Note = note.EDAMNote();
			}
			context.RefToReplace = noteToReplace;
			context.Notebook = notebook;
			context.Policy = policy;

			context = UploadNote_DetermineDestination(context);
			return context.NoteRef;
		}
		public ENNote DownloadNote(ENNoteRef noteRef)
		{
			if (noteRef == null)
			{
				ENSDKLogger.ENSDKLogError("noteRef parameter is required to get download note");
				throw new ENInvalidDataException();
			}

			if (!IsAuthenticated)
			{
				throw new ENAuthExpiredException();
			}

			// Find the note store client that works with this note.
			ENNoteStoreClient noteStore = NoteStoreForNoteRef(noteRef);

			// Fetch by guid. Always get the content and resources.
			try
			{
				Note note = noteStore.GetNote(noteRef.Guid, true, true, false, false);
				// Create an ENNote from the EDAMNote.
				ENNote resultNote = new ENNote(note);
				return resultNote;
			}
			catch (Exception)
			{
				return null;
			}
		}
		public ENNoteRef UploadNote(ENNote note, ENNotebook notebook)
		{

			return UploadNote(note, UploadPolicy.Create, notebook, null);

		}
        /// <summary>
        /// Evernoteにファイルをアップロードします
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void uploadButton_Click(object sender, RoutedEventArgs e)
        {
            FileList list = this.DataContext as FileList;

              try
              {
            foreach (var f in list.FileNames)
            {
              ENNote resourceNote = new ENNote();
              resourceNote.Title = "My test note with a resource";
              resourceNote.Content = ENNoteContent.NoteContentWithString("Hello, resource!");
              byte[] file = File.ReadAllBytes(f);
              FileInfo fInfo = new FileInfo(f);
              ENResource resource = new ENResource(file, MimeTypeMap.GetMimeType(fInfo.Extension), fInfo.Name);
              resourceNote.Resources.Add(resource);
              ENNoteRef resourceRef = ENSession.SharedSession.UploadNote(resourceNote, null);
            }
              }
              catch (Exception ex)
              {
            ModernDialog.ShowMessage("アップロード中にエラーが発生しました。", "お知らせ", MessageBoxButton.OK);
            return;
              }
              ModernDialog.ShowMessage("アップロードが完了しました。", "お知らせ", MessageBoxButton.OK);
        }