Ejemplo n.º 1
0
        /// <summary>
        /// Gets the deltas for a user's folders and files.
        /// </summary>
        /// <param name="cursor">The value returned from the prior call to GetDelta or an empty string</param>
        /// <returns></returns>
        public async Task <DeltaPage> GetDelta(string cursor)
        {
            var requestUrl = MakeRequestString("1/delta", ApiType.Base);

            var request = new HttpRequest(HttpMethod.Post, requestUrl);

            request.AddParameter("cursor", cursor);

            _oauthHandler.Authenticate(request);

            var response = await _httpClient.SendAsync(request);

            //TODO - Error Handling

            string responseBody = await response.Content.ReadAsStringAsync();

            var deltaResponse = JsonConvert.DeserializeObject <DeltaPageInternal>(responseBody);

            var deltaPage = new DeltaPage
            {
                Cursor   = deltaResponse.Cursor,
                Has_More = deltaResponse.Has_More,
                Reset    = deltaResponse.Reset,
                Entries  = new List <DeltaEntry>()
            };

            foreach (var stringList in deltaResponse.Entries)
            {
                deltaPage.Entries.Add(StringListToDeltaEntry(stringList));
            }

            return(deltaPage);
        }
        public object Deserialize(JsonValue value, JsonMapper mapper)
        {
            DeltaPage deltaPage = new DeltaPage();

            deltaPage.Cursor  = value.GetValue <string>("cursor");
            deltaPage.HasMore = value.GetValue <bool>("has_more");
            deltaPage.Reset   = value.GetValue <bool>("reset");
            deltaPage.Entries = new List <DeltaEntry>();
            JsonValue entriesValue = value.GetValue("entries");

            if (entriesValue != null)
            {
                foreach (JsonValue entryValue in entriesValue.GetValues())
                {
                    DeltaEntry deltaEntry = new DeltaEntry();
                    deltaEntry.Path = entryValue.GetValue <string>(0);
                    JsonValue metadataValue = entryValue.GetValue(1) as JsonObject;
                    if (metadataValue != null)
                    {
                        deltaEntry.Metadata = mapper.Deserialize <Entry>(metadataValue);
                    }
                    deltaPage.Entries.Add(deltaEntry);
                }
            }
            return(deltaPage);
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Gets the deltas for a user's folders and files.
        /// </summary>
        /// <param name="cursor">The value returned from the prior call to GetDelta or an empty string</param>
        /// <param name="cancellationToken"></param>
        /// <returns></returns>
        public async Task <DeltaPage> GetDelta(string cursor, CancellationToken cancellationToken)
        {
            var requestUrl = MakeRequestString("1/delta", ApiType.Base);

            var request = new HttpRequest(HttpMethod.Post, requestUrl);

            request.AddParameter("cursor", cursor);

            var deltaResponse = await SendAsync <DeltaPageInternal>(request, cancellationToken);

            var deltaPage = new DeltaPage
            {
                Cursor   = deltaResponse.Cursor,
                Has_More = deltaResponse.Has_More,
                Reset    = deltaResponse.Reset,
                Entries  = new List <DeltaEntry>()
            };

            foreach (var stringList in deltaResponse.Entries)
            {
                deltaPage.Entries.Add(JRawListToDeltaEntry(stringList));
            }

            return(deltaPage);
        }
Ejemplo n.º 4
0
        /// <summary>
        /// Gets the deltas for a user's folders and files.
        /// </summary>
        /// <param name="cursor">The value returned from the prior call to GetDelta or an empty string</param>
        /// <param name="pathPrefix">If present, this parameter filters the response to only include entries at or under the specified path</param>
        /// <param name="locale">If present the metadata returned will have its size field translated based on the given locale</param>
        /// <param name="includeMediaInfo">If true, each file will include a photo_info dictionary for photos and a video_info dictionary for videos with additional media info. When include_media_info is specified, files will only appear in delta responses when the media info is ready. If you use the include_media_info parameter, you must continue to pass the same value on subsequent calls using the returned cursor.</param>
        /// <returns></returns>
        public DeltaPage GetDelta(string cursor, string pathPrefix, string locale, bool includeMediaInfo)
        {
            if (!pathPrefix.StartsWith("/"))
            {
                pathPrefix = "/" + pathPrefix;
            }

            var request = _requestHelper.CreateDeltaRequest(cursor, pathPrefix, locale, includeMediaInfo);

            var deltaResponse = Execute <DeltaPageInternal>(ApiType.Base, request);

            var deltaPage = new DeltaPage
            {
                Cursor   = deltaResponse.Cursor,
                Has_More = deltaResponse.Has_More,
                Reset    = deltaResponse.Reset,
                Entries  = new List <DeltaEntry>()
            };

            foreach (var stringList in deltaResponse.Entries)
            {
                deltaPage.Entries.Add(StringListToDeltaEntry(stringList));
            }

            return(deltaPage);
        }
Ejemplo n.º 5
0
        static void Main()
        {
            DropboxServiceProvider dropboxServiceProvider =
                new DropboxServiceProvider(DropboxAppKey, DropboxAppSecret, AccessLevel.AppFolder);

            // Authenticate the application (if not authenticated) and load the OAuth token
            if (!File.Exists(OAuthTokenFileName))
            {
                AuthorizeAppOAuth(dropboxServiceProvider);
            }
            OAuthToken oauthAccessToken = LoadOAuthToken();

            // Login in Dropbox
            IDropbox dropbox = dropboxServiceProvider.GetApi(oauthAccessToken.Value, oauthAccessToken.Secret);

            // Display user name (from his profile)
            DropboxProfile profile = dropbox.GetUserProfileAsync().Result;

            Console.WriteLine("Hi " + profile.DisplayName + "!");

            // Create new folder
            string    newFolderName = "BatmanAlbum";
            DeltaPage deltaPage     = dropbox.DeltaAsync(null).Result;
            var       isFolderExist = deltaPage.Entries.Any(x => x.Path == ("/" + newFolderName).ToLower());

            if (!isFolderExist)
            {
                Entry createFolderEntry = dropbox.CreateFolderAsync(newFolderName).Result;
                Console.WriteLine("Created folder: {0}", createFolderEntry.Path);
            }

            var           folderPath     = @"../../Pics";
            DirectoryInfo picturesFolder = new DirectoryInfo(folderPath);

            foreach (var fileName in picturesFolder.GetFiles("*.jpg"))
            {
                // Upload a file
                Entry uploadFileEntry = dropbox.UploadFileAsync(
                    new FileResource(fileName.FullName),
                    "/" + newFolderName + "/" + fileName.Name).Result;
                Console.WriteLine("Uploaded a file: {0}", uploadFileEntry.Path);

                // Share a file
                DropboxLink sharedUrl = dropbox.GetShareableLinkAsync(uploadFileEntry.Path).Result;
                Process.Start(sharedUrl.Url);
            }
        }
Ejemplo n.º 6
0
        /// <summary>
        /// Gets the deltas for a user's folders and files.
        /// </summary>
        /// <param name="cursor">The value returned from the prior call to GetDelta or an empty string</param>
        /// <returns></returns>
        public DeltaPage GetDelta(string cursor)
        {
            var request = _requestHelper.CreateDeltaRequest(cursor);

            var deltaResponse = Execute <DeltaPageInternal>(ApiType.Base, request);

            var deltaPage = new DeltaPage
            {
                Cursor   = deltaResponse.Cursor,
                Has_More = deltaResponse.Has_More,
                Reset    = deltaResponse.Reset,
                Entries  = new List <DeltaEntry>()
            };

            foreach (var stringList in deltaResponse.Entries)
            {
                deltaPage.Entries.Add(StringListToDeltaEntry(stringList));
            }

            return(deltaPage);
        }
        public void Delta()
        {
            mockServer.ExpectNewRequest()
            .AndExpectUri("https://api.dropbox.com/1/delta/")
            .AndExpectMethod(HttpMethod.POST)
            .AndExpectBody("cursor=123azed54")
            .AndRespondWith(EmbeddedResource("Delta.json"), responseHeaders);

#if NET_4_0 || SILVERLIGHT_5
            DeltaPage deltaPage = dropbox.DeltaAsync("123azed54").Result;
#else
            DeltaPage deltaPage = dropbox.Delta("123azed54");
#endif
            Assert.AreEqual("AuYe6kpu-M6pToHfszmwEtnEuE8Xiz4NqiDs4BKp2w2OeJxj_JqrzMCww5VZ5l8SAwOjGwMDAzMDBAjpF-cmFpWoFeenlSjoKiSlpKQxi_n8YkAAff3EgoJi_eKCosy8dL281BKF4vzkzMQchcLSzOTs4hKgbgUNoBKFtPyclNQiTdb3W-yQtAvoJyVmJiok5-cVl-aUAI1gyWl_D5IAANo_J44", deltaPage.Cursor);
            Assert.AreEqual(true, deltaPage.HasMore);
            Assert.AreEqual(true, deltaPage.Reset);
            Assert.AreEqual(11, deltaPage.Entries.Count);
            Assert.AreEqual("/photos", deltaPage.Entries[0].Path);
            Assert.IsNotNull(deltaPage.Entries[0].Metadata);
            Assert.AreEqual("/Photos", deltaPage.Entries[0].Metadata.Path);
            Assert.AreEqual("/deleted_dir", deltaPage.Entries[10].Path);
            Assert.IsNull(deltaPage.Entries[10].Metadata);
        }
Ejemplo n.º 8
0
        public void GetDelta(String cursor)
        {
            try
            {
                DeltaPage         delta        = this.client.GetDelta(cursor);
                List <DeltaEntry> deltaEntries = delta.Entries;
                foreach (DeltaEntry deltaEntry in deltaEntries)
                {
                    MessageBox.Show(new Form {
                        TopMost = true
                    }, deltaEntry.MetaData.Path + " : " + client.GetMetaData(deltaEntry.MetaData.Path, null).Hash);                                          //
                }
                if (delta.Has_More == true)
                {
                    GetDelta(delta.Cursor);
                }
            }

            catch (DropNet.Exceptions.DropboxException ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
 public object Deserialize(JsonValue value, JsonMapper mapper)
 {
     DeltaPage deltaPage = new DeltaPage();
     deltaPage.Cursor = value.GetValue<string>("cursor");
     deltaPage.HasMore = value.GetValue<bool>("has_more");
     deltaPage.Reset = value.GetValue<bool>("reset");
     deltaPage.Entries = new List<DeltaEntry>();
     JsonValue entriesValue = value.GetValue("entries");
     if (entriesValue != null)
     {
         foreach (JsonValue entryValue in entriesValue.GetValues())
         {
             DeltaEntry deltaEntry = new DeltaEntry();
             deltaEntry.Path = entryValue.GetValue<string>(0);
             JsonValue metadataValue = entryValue.GetValue(1) as JsonObject;
             if (metadataValue != null)
             {
                 deltaEntry.Metadata = mapper.Deserialize<Entry>(metadataValue);
             }
             deltaPage.Entries.Add(deltaEntry);
         }
     }
     return deltaPage;
 }