示例#1
0
        internal static AuthenticationResult Authenticate(String username, String password, String consumerKey, String consumerSecret, String evernoteHost, UserStore.Client userStore)
        {
            AuthenticationResult authResult;

            try
            {
                authResult = userStore.authenticate(username, password, consumerKey, consumerSecret);
            }
            catch (EDAMUserException ex)
            {
                String        parameter = ex.Parameter;
                EDAMErrorCode errorCode = ex.ErrorCode;

                if (parameter.ToLower() == "consumerkey")
                {
                    throw new ApplicationException("API Key Missing. \r\n Please download latest en2ki release from homepage");
                }
                else
                {
                    throw new ApplicationException(String.Format("Authentication Failed \r\n (Make sure {0} is correct)", parameter));
                }
            }
            return(authResult);
        }
        public bool BeginSyncTransaction()
        {
            Logger.Debug("[Evernote] Begining Sync...");
            if (ConsumerKey.Equals("your_key_here"))
            {
                throw new Exception("You need to Update the Evernote ConsumerKey!! Open up the EvernoteSyncServer.cs file and look at it!");
            }
            ServicePointManager.CertificatePolicy = new CertificateManager();
            //ServicePointManager.ServerCertificateValidationCallback += ValidateServerCertificate;
            bool versionOK =
                _userStore.checkVersion("Tomboy.EvernoteSyncAddin",
                                        Evernote.EDAM.UserStore.Constants.EDAM_VERSION_MAJOR,
                                        Evernote.EDAM.UserStore.Constants.EDAM_VERSION_MINOR);

            if (!versionOK)
            {
                Logger.Error("[Evernote] EDAM protocol version not up to date: " +
                             Evernote.EDAM.UserStore.Constants.EDAM_VERSION_MAJOR + "." +
                             Evernote.EDAM.UserStore.Constants.EDAM_VERSION_MINOR);
                return(false);
            }
            string username;
            string password;

            if (!EvernoteSyncServiceAddin.GetConfigSettings(out username, out password))
            {
                return(false);
            }
            AuthenticationResult authResult =
                _userStore.authenticate(username, password, ConsumerKey, ConsumerSecret);
            User user = authResult.User;

            _authToken = authResult.AuthenticationToken;
            Logger.Debug("[Evernote] Authentication successful for: " + user.Username);
            Logger.Debug("[Evernote] Authentication token = " + _authToken);


            String     noteStoreUrl       = EdamBaseUrl + "/edam/note/" + user.ShardId;
            TTransport noteStoreTransport = new THttpClient(noteStoreUrl);
            TProtocol  noteStoreProtocol  = new TBinaryProtocol(noteStoreTransport);

            _noteStore = new NoteStore.Client(noteStoreProtocol);

            //TODO - check if the user has a 'Tomboy' Notebook. If not, add one
            bool            foundTomboyNotebook = false;
            List <Notebook> notebooks           = _noteStore.listNotebooks(_authToken);

            foreach (Notebook notebook in notebooks)
            {
                if (notebook.Name.ToLowerInvariant().Trim().Equals("tomboy"))
                {
                    foundTomboyNotebook = true;
                    _tomboyNotebook     = notebook;
                }
            }

            if (!foundTomboyNotebook)
            {
                // no tomboy notebook found, so try to add one
                _tomboyNotebook                 = new Notebook();
                _tomboyNotebook.Name            = "Tomboy";
                _tomboyNotebook.DefaultNotebook = false;
                _tomboyNotebook.Guid            = new Guid().ToString();
                _tomboyNotebook                 = _noteStore.createNotebook(_authToken, _tomboyNotebook);
                if (_tomboyNotebook == null)
                {
                    Logger.Error("[Evernote] Could not create 'Tomboy' notebook in evernote");
                    return(false);
                }
                Console.WriteLine("[Evernote] New Tomboy notebook with guid : " + _tomboyNotebook.Guid);
            }

            return(true);
        }