protected override void Initialize() { // UIManager を初期化して登録します。 uiManager = new UIManager(this); uiManager.ScreenFactory = CreateScreenFactory(); Components.Add(uiManager); var fpsCounter = new FpsCounter(this); fpsCounter.Content.RootDirectory = "Content"; fpsCounter.HorizontalAlignment = DebugHorizontalAlignment.Right; fpsCounter.SampleSpan = TimeSpan.FromSeconds(2); Components.Add(fpsCounter); timeRuler = new TimeRuler(this); Components.Add(timeRuler); updateMarker = timeRuler.CreateMarker(); updateMarker.Name = "Update"; updateMarker.BarIndex = 0; updateMarker.Color = Color.Cyan; drawMarker = timeRuler.CreateMarker(); drawMarker.Name = "Draw"; drawMarker.BarIndex = 1; drawMarker.Color = Color.Yellow; // StorageManager を登録します。 storageManager = new StorageManager(this); storageManager.ContainerSelected += (s, c) => { // IBoxService が登録されているならば BoxIntegration を初期化します。 if (boxManager != null) BoxIntegration.Initialize(); }; Components.Add(storageManager); // StorageBlockManager を登録します。 storageBlockManager = new StorageBlockManager(this); // AsyncTaskManager を登録します。 asyncTaskManager = new AsyncTaskManager(this); Components.Add(asyncTaskManager); // IBoxService を登録します。 var assemblyFile = "Willcraftia.Net.Box.BlockViewer.ApiKey.dll"; var apiKeyClassName = "Willcraftia.Net.Box.BlockViewer.ApiKey"; try { boxManager = new BoxManager(assemblyFile, apiKeyClassName); Services.AddService(typeof(IBoxService), boxManager); BoxIntegration = new BoxIntegration(this); } catch { // IBoxService を無効とします。 } // マウス カーソルを可視にします。 IsMouseVisible = true; base.Initialize(); }
static void Main(string[] args) { var assemblyFile = "Willcraftia.Net.Box.Demo.ApiKey.dll"; var apiKeyClassName = "Willcraftia.Net.Box.Demo.ApiKey"; var boxManager = new BoxManager(assemblyFile, apiKeyClassName); //---------------------------------------------------------------- // // get_ticket // Prompt("Press enter key to request get_ticket."); string ticket; try { ticket = boxManager.GetTicket(); Console.WriteLine("Ticket: " + ticket); } catch (Exception e) { Prompt(e); return; } //---------------------------------------------------------------- // // redirect // Prompt("Press enter key to redirect you to Box Application auth page."); boxManager.RedirectUserAuth(ticket); //---------------------------------------------------------------- // // get_auth_token // Prompt("Press enter key to request get_auth_token."); BoxSession session; try { session = boxManager.GetAuthToken(ticket); Console.WriteLine("AuthToken: " + session.AuthToken); } catch (Exception e) { Prompt(e); return; } //---------------------------------------------------------------- // // get_account_tree[root] // Prompt("Press enter key to request get_account_tree[root]."); Folder rootFolder; try { rootFolder = session.GetAccountTreeRoot("onelevel", "nozip"); Console.WriteLine("Root Folder: " + rootFolder); } catch (Exception e) { Prompt(e); return; } string demoFolderName = "DemoFolder"; long demoFolderId = -1; var demoFolder = rootFolder.FindFolderByName(demoFolderName); if (demoFolder != null) demoFolderId = demoFolder.Id; //---------------------------------------------------------------- // // create_folder // if (demoFolderId < 0) { Prompt("Press enter key to request create_folder."); CreatedFolder createdFolder; try { createdFolder = session.CreateFolder(0, demoFolderName, true); } catch (Exception e) { Prompt(e); return; } demoFolderId = createdFolder.FolderId; } else { Prompt("Press enter key to skip create_folder."); } //---------------------------------------------------------------- // // upload // Prompt("Press enter key to upload files."); var uploadFiles = new UploadFile[] { new UploadFile { ContentType = "text/xml;charset=utf-8", Name = "Demo_0.xml", Content = @"<?xml version=""1.0""?><Demo>Demo File 0</Demo>" }, new UploadFile { ContentType = "text/xml;charset=utf-8", Name = "Demo_1.xml", Content = @"<?xml version=""1.0""?><Demo>Demo File 1</Demo>" } }; List<UploadedFile> uploadedFiles; try { uploadedFiles = session.Upload(demoFolderId, uploadFiles, false, "Demo message.", null); Console.WriteLine("Uploaded Files:"); foreach (var uploadedFile in uploadedFiles) Console.WriteLine(uploadedFile); } catch (Exception e) { Prompt(e); return; } //---------------------------------------------------------------- // // overwrite // Prompt("Press enter key to overwrite a file."); var overwriteFile = new UploadFile { ContentType = "text/xml;charset=utf-8", Name = "Demo_0.xml", Content = @"<?xml version=""1.0""?><Demo>Demo File 0 Overwritten</Demo>" }; try { var overwrittenFile = session.Overwrite(uploadedFiles[0].Id, overwriteFile, false, "Demo message.", null); Console.WriteLine("Overwritten File:"); Console.WriteLine(overwrittenFile); } catch (Exception e) { Prompt(e); return; } //---------------------------------------------------------------- // // download // Prompt("Press enter key to download a file."); string downloadedFile; using (var downloadStream = session.Download(uploadedFiles[0].Id)) { using (var memoryStream = new MemoryStream()) { var bytes = new byte[1024]; int byteCount = 0; while ((byteCount = downloadStream.Read(bytes, 0, bytes.Length)) != 0) { memoryStream.Write(bytes, 0, byteCount); } memoryStream.Position = 0; var reader = new StreamReader(memoryStream); downloadedFile = reader.ReadToEnd(); } } Console.WriteLine("Result:"); Console.WriteLine(downloadedFile); //---------------------------------------------------------------- // // invite_collaborators // Prompt("Press enter key to request invite_collaborators."); string[] emails = { "*****@*****.**" }; List<InvitedCollaborator> invitedCollaborators; try { invitedCollaborators = session.InviteCollaboratorsToFolder(demoFolderId, null, emails, Role.Viewer, false, true); Console.WriteLine("Invited Collaborators:"); foreach (var invited in invitedCollaborators) Console.WriteLine(invited); } catch (BoxStatusException e) { if (e.Status == "user_already_collaborator") { Prompt("The specified users were already collaborators."); } else { Prompt(e); return; } } //---------------------------------------------------------------- // // get_user_id // // ※get_user_id は collaborator として既知でなければ user_id の取得を許可していない模様。 // Prompt("Press enter key to request get_user_id."); var userEmail = "*****@*****.**"; try { var resolvedUserId = session.GetUserId(userEmail); Console.WriteLine(string.Format("The ID of the user '{0}' is '{1}'.", userEmail, resolvedUserId)); } catch { Prompt(string.Format("The user '{0}' could not be resolved.", userEmail)); } //---------------------------------------------------------------- // // get_file_info // Prompt("Press enter key to request get_file_info."); try { var fileInfo = session.GetFileInfo(uploadedFiles[0].Id); Console.WriteLine(string.Format("The file '{0}' information: ", uploadedFiles[0].Id)); Console.WriteLine(fileInfo); } catch (Exception e) { Prompt(e); return; } //---------------------------------------------------------------- // // delete[file] // Prompt("Press enter key to request delete[file]."); try { session.DeleteFile(uploadedFiles[0].Id); Console.WriteLine(string.Format("The file '{0}' was deleted.", uploadedFiles[0].Id)); } catch (Exception e) { Prompt(e); return; } //---------------------------------------------------------------- // // delete[folder] // Prompt("Press enter key to request delete[folder]."); try { session.DeleteFolder(demoFolderId); Console.WriteLine(string.Format("The folder '{0}' was deleted.", demoFolderId)); } catch (Exception e) { Prompt(e); return; } Prompt("Press enter key to exist this application."); }