// I/F public BoxSession CreateSession(string authToken) { if (authToken == null) { throw new ArgumentNullException("authToken"); } //// AuthToken を検査するために get_account_tree を呼び出します。 //var result = GetAccountTreeFunction.Execute(ApiKey, authToken, 0, "onelevel", "nozip"); //if (result.Status == "listing_ok") //{ // Session = new BoxSession(ApiKey, authToken); // return Session; //} //else if (result.Status == "not_logged_in") //{ // // AuthToken が無効になっています。 // return null; //} //else //{ // HandleErrorStatus(result.Status); // return null; //} Session = new BoxSession(ApiKey, authToken); return(Session); }
// I/F public BoxSession CreateSession(string authToken) { if (authToken == null) throw new ArgumentNullException("authToken"); //// AuthToken を検査するために get_account_tree を呼び出します。 //var result = GetAccountTreeFunction.Execute(ApiKey, authToken, 0, "onelevel", "nozip"); //if (result.Status == "listing_ok") //{ // Session = new BoxSession(ApiKey, authToken); // return Session; //} //else if (result.Status == "not_logged_in") //{ // // AuthToken が無効になっています。 // return null; //} //else //{ // HandleErrorStatus(result.Status); // return null; //} Session = new BoxSession(ApiKey, authToken); return Session; }
public void GetAuthToken() { boxSession = boxService.GetAuthToken(ticket); boxSettings.AuthToken = boxSession.AuthToken; }
public bool RestoreSession() { if (string.IsNullOrEmpty(boxSettings.AuthToken)) return false; boxSession = boxService.CreateSession(boxSettings.AuthToken); Folder rootFolder; try { rootFolder = boxSession.GetAccountTreeRoot("onelevel", "nozip"); } catch (BoxStatusException e) { boxSession = null; if (e.Status == "not_logged_in") { // AuthToken が無効になっています。 boxSettings.AuthToken = null; boxSettings.HomeFolderId = -1; boxSettings.BlocksFolderId = -1; SaveSettings(); return false; } else { // その他のエラーならば throw します。 throw; } } // 保存されている Blocks Home と Blocks フォルダの ID を検査します。 // それらが無効であっても、AuthToken は有効であるため、 // BoxSession の復元は成功で終わらせます。 if (0 < boxSettings.HomeFolderId) { // Blocks Home と Blocks フォルダは同時に作成するので、 // どちらかの ID が無効な場合、同時に無効に設定します。 var homeFolder = rootFolder.FindFolderById(boxSettings.HomeFolderId); if (homeFolder == null) { // Blocks Home フォルダが存在しません。 boxSettings.HomeFolderId = -1; boxSettings.BlocksFolderId = -1; SaveSettings(); } else { var homeFolderTree = boxSession.GetAccountTree(homeFolder.Id, "onelevel", "nozip"); var blockFolder = homeFolderTree.FindFolderById(boxSettings.BlocksFolderId); if (blockFolder == null) { // Blocks フォルダが存在しません。 boxSettings.HomeFolderId = -1; boxSettings.BlocksFolderId = -1; SaveSettings(); } } } else { if (0 < boxSettings.BlocksFolderId) { // フォルダ情報の不整合を起こしているため、初期化して保存します。 boxSettings.HomeFolderId = -1; boxSettings.BlocksFolderId = -1; SaveSettings(); } } return true; }