示例#1
0
        /// <summary>
        /// 點選訊息狀態
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void messageStatus_Click(object sender, EventArgs e)
        {
            var msgForm = new StatusForm(_messgeStore)
            {
                Text = "系統訊息 (System Messages)"
            };

            msgForm.ShowDialog();
            SetStatus(SystemStatusType.SystemMsg, _messgeStore.Count.ToString());
        }
            public Google.Apis.Drive.v2.DriveService Init(string applicationName,
                                                          string clientIdentifier,
                                                          string clientSecret,
                                                          string[] scope,
                                                          bool logout,
                                                          string refreshTokenFolder)
            {
                StatusForm.ShowDialog();

                try
                {
                    _refreshTokenFilePath = refreshTokenFolder;

                    string fileDataStorePath = _refreshTokenFilePath;
                    if (FileExists(fileDataStorePath))
                    {
                        DateTime lastFileWriteTime = GetFileLastWriteTime(fileDataStorePath);

                        if (lastFileWriteTime < new DateTime(2014, 8, 22))
                        {
                            DeleteFile(fileDataStorePath);
                        }
                    }

                    if (logout)
                    {
                        try
                        {
                            if (DirectoryExists(fileDataStorePath))
                            {
                                string[] fileDataStoreFiles = System.IO.Directory.GetFiles(fileDataStorePath,
                                                                                           "Google.Apis.Auth.OAuth2.Responses.*");

                                foreach (string fileDataStoreFile in fileDataStoreFiles)
                                {
                                    DeleteFile(fileDataStoreFile);
                                }
                            }

                            LoginForm.Logout();
                        }
                        catch (Exception exception)
                        {
                            Log.Error(String.Format("Authenticator.Logout - Deleting token file. {0}", exception.Message));
                        }
                    }

                    var clientSecrets = new Google.Apis.Auth.OAuth2.ClientSecrets
                    {
                        ClientId     = clientIdentifier,
                        ClientSecret = clientSecret
                    };

                    _fileDataStore = new EncryptedFileDataStore(refreshTokenFolder);

                    System.Threading.Tasks.Task <Google.Apis.Auth.OAuth2.UserCredential> task = null;

                    try
                    {
                        task = Google.Apis.Auth.OAuth2.GoogleWebAuthorizationBroker.AuthorizeAsync(
                            clientSecrets,
                            scope,
                            System.Environment.UserName,
                            System.Threading.CancellationToken.None,
                            _fileDataStore);

                        task.Wait();
                    }
                    catch (Exception exception)
                    {
                        throw new LogException("GoogleWebAuthorizationBroker.AuthorizeAsync - " + exception.Message, false, false);
                    }

                    _userCredential = task.Result;

                    var initializer = new BaseClientService.Initializer
                    {
                        HttpClientInitializer = _userCredential,
                        ApplicationName       = applicationName
                    };

                    _driveService = new Google.Apis.Drive.v2.DriveService(initializer);

                    UpdateAboutData(_driveService);

                    return(_driveService);
                }
                catch (Exception exception)
                {
                    Log.Error(exception);

                    return(null);
                }
                finally
                {
                    StatusForm.CloseDialog();
                }
            }
 /// <summary>
 /// 點選訊息狀態
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 private void messageStatus_Click(object sender, EventArgs e)
 {
     var msgForm = new StatusForm(_messgeStore) { Text = "系統訊息 (System Messages)" };
     msgForm.ShowDialog();
     SetStatus(SystemStatusType.SystemMsg, _messgeStore.Count.ToString());
 }