Example #1
0
        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();
        }
Example #2
0
        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.");
        }