Ejemplo n.º 1
0
        public void Share(Action <MinusResult.Share> galleryCreated)
        {
            // create a couple of things we're going to need between requests
            CreateGalleryResult galleryCreatedResult = null;

            // set up the listeners for CREATE
            api.CreateGalleryFailed += (sender, e) => LogError(Resources.CreateGalleryFailed, e);

            api.CreateGalleryComplete += (sender, result) =>
            {
                // gallery created, trigger upload of the first file
                galleryCreatedResult = result;
                LogInfo(Resources.GalleryCreated);
                LogInfo(Resources.UploadingFiles);
                FileInfo file = new FileInfo(queuedFiles[uploadedFiles.Count]);
                LogInfo(Resources.UploadingFile + file.Name + "...");
                api.UploadItem(result.EditorId, result.Key, queuedFiles[0]);
            };

            // set up the listeners for UPLOAD
            api.UploadItemFailed += (sender, e) => LogError(Resources.UploadFailed, e);

            api.UploadItemComplete += (sender, result) =>
            {
                // upload complete, either trigger another upload or save the gallery if all files have been uploaded
                LogInfo(Resources.UploadSuccessful);
                uploadedFiles.Add(result.Id);
                if (uploadedFiles.Count == queuedFiles.Count)
                {
                    // if all the elements are uploaded, then save the gallery
                    LogInfo(Resources.AllUploadSuccessful);
                    api.SaveGallery(title ?? "", galleryCreatedResult.EditorId, galleryCreatedResult.Key, uploadedFiles.ToArray());
                }
                else
                {
                    // otherwise just keep uploading
                    FileInfo file = new FileInfo(queuedFiles[uploadedFiles.Count]);
                    LogInfo(Resources.UploadingFile + file.Name + "...");
                    api.UploadItem(galleryCreatedResult.EditorId, galleryCreatedResult.Key, file.FullName);
                }
            };

            // set up the listeners for SAVE
            api.SaveGalleryFailed += (sender, e) => LogError(Resources.SaveGalleryFailed, e);

            api.SaveGalleryComplete += sender =>
            {
                string readUrl = BaseUrl + galleryCreatedResult.ReaderId;
                string editUrl = BaseUrl + galleryCreatedResult.EditorId;

                LogInfo(Resources.GallerySaved);
                galleryCreated(new MinusResult.Share
                {
                    EditUrl  = editUrl,
                    ShareUrl = readUrl
                });
            };

            if (LoginStatus == LoginStatus.Successful)
            {
                api.CreateGallery(cookie);
            }
            else
            {
                api.CreateGallery();
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Tests the full scope of methods in the API.
        /// This method creates a gallery, uploads a couple of items, saves them and then retrieves them.
        /// Make sure you change the values of the items in the "items" array to match actually valid files or this
        /// will fail.
        /// </summary>
        private static void TestAll()
        {
            // The call that triggers the program is the near the end of this method
            // (the rest is pretty much setup to react to events)

            // create the API
            MinusApi api = new MinusApi(API_KEY);

            // Prepare the items to be uploaded
            String[] items =
            {
                @"C:\Users\bruno\Desktop\clown.png",
                @"C:\Users\bruno\Desktop\small.png"
            };
            IList <String> uploadedItems = new List <String>(items.Length);

            // create a couple of things we're going to need between requests
            CreateGalleryResult galleryCreated = null;

            // set up the listeners for CREATE
            api.CreateGalleryFailed += delegate(MinusApi sender, Exception e)
            {
                // don't do anything else...
                Console.WriteLine("Failed to create gallery..." + e.Message);
            };
            api.CreateGalleryComplete += delegate(MinusApi sender, CreateGalleryResult result)
            {
                // gallery created, trigger upload of the first file
                galleryCreated = result;
                Console.WriteLine("Gallery created! " + result);
                Thread.Sleep(1000);
                Console.WriteLine("Uploading files...");
                api.UploadItem(result.EditorId, result.Key, items[0]);
            };

            // set up the listeners for UPLOAD
            api.UploadItemFailed += delegate(MinusApi sender, Exception e)
            {
                // don't do anything else...
                Console.WriteLine("Upload failed: " + e.Message);
            };
            api.UploadItemComplete += delegate(MinusApi sender, UploadItemResult result)
            {
                // upload complete, either trigger another upload or save the gallery if all files have been uploaded
                Console.WriteLine("Upload successful: " + result);
                uploadedItems.Add(result.Id);
                if (uploadedItems.Count == items.Length)
                {
                    // if all the elements are uploaded, then save the gallery
                    Console.WriteLine("All uploads complete, saving gallery...");
                    api.SaveGallery("testGallery", galleryCreated.EditorId, galleryCreated.Key, uploadedItems.ToArray());
                }
                else
                {
                    // otherwise just keep uploading
                    Console.WriteLine("Uploading item " + (uploadedItems.Count + 1));
                    api.UploadItem(galleryCreated.EditorId, galleryCreated.Key, items[uploadedItems.Count]);
                }
            };

            // set up the listeners for SAVE
            api.SaveGalleryFailed += delegate(MinusApi sender, Exception e)
            {
                Console.WriteLine("Failed to save gallery... " + e.Message);
            };
            api.SaveGalleryComplete += delegate(MinusApi sender)
            {
                // The extra "m" is appended because minus uses the first character to determine the type of data
                // you're accessing (image, gallery, etc) and route you accordingly.
                Console.WriteLine("Gallery saved! You can now access it at http://min.us/m" + galleryCreated.ReaderId);
                api.SignIn("123test123", "123test123");
            };

            //set up listeners for SignIn
            api.SignInFailed += delegate(MinusApi sender, Exception e)
            {
                Console.WriteLine("Failed to Sign In... " + e.Message);
            };
            api.SignInComplete += delegate(MinusApi sender, SignInResult result)
            {
                Console.WriteLine("Signed In: " + result.Success);
            };

            // this is the call that actually triggers the whole program
            api.CreateGallery();
        }