private async Task <T> GetAsync <T>(YandexPreset preset, string url, CancellationToken cancellationToken) { var handler = new HttpClientHandler { Proxy = WebHelper.GetProxy(), PreAuthenticate = true, UseDefaultCredentials = false, }; using (var client = new HttpClient(handler)) { var request = new HttpRequestMessage(HttpMethod.Get, url) { Headers = { { HttpRequestHeader.Authorization.ToString(), "OAuth " + preset.OAuthToken } } }; string responseBody; using (var response = await client.SendAsync(request, cancellationToken)) { responseBody = await response.Content.ReadAsStringAsync(cancellationToken); } var errorDescriptor = Serializer.Deserialize <ErrorDescriptor>(responseBody); if (errorDescriptor.Error != null) { throw new UploadException($"{errorDescriptor.Error}, {errorDescriptor.Message}, {errorDescriptor.Description}"); } return(Serializer.Deserialize <T>(responseBody)); } }
public static async Task <ValidatedEventArgs> IsValid(YandexPreset preset) { if (!preset.IsAnonymous && !YandexDisk.IsAuthorized(preset)) { return(new ValidatedEventArgs("S.SaveAs.Warning.Upload.NotAuthorized", StatusReasons.UploadServiceUnauthorized, () => App.MainViewModel.OpenOptions.Execute(Options.UploadIndex))); } return(await preset.IsValid()); }
public async Task ThrowExceptionWhenUploadFileWithInvalidToken() { var cloud = CloudFactory.CreateCloud(UploadDestinations.Yandex); var preset = new YandexPreset { OAuthToken = "Invalid token" }; //Upload. await Assert.ThrowsAsync <UploadException>(async() => await cloud.UploadFileAsync(preset, "./Data/Test.txt", CancellationToken.None)); }
private void TypeComboBox_Selected(object sender, RoutedEventArgs e) { if (!IsLoaded) { return; } if (TypeComboBox.SelectedIndex < 1) { MainPresenter.Content = null; return; } if (!IsEditing) { //Create a new model. switch ((UploadDestinations)TypeComboBox.SelectedIndex) { case UploadDestinations.Imgur: CurrentPreset = new ImgurPreset(); break; case UploadDestinations.Gfycat: CurrentPreset = new GfycatPreset(); break; case UploadDestinations.Yandex: CurrentPreset = new YandexPreset(); break; } } switch ((UploadDestinations)TypeComboBox.SelectedIndex) { case UploadDestinations.Imgur: MainPresenter.Content = new ImgurPanel { DataContext = CurrentPreset }; break; case UploadDestinations.Gfycat: MainPresenter.Content = new GfycatPanel { DataContext = CurrentPreset }; break; case UploadDestinations.Yandex: MainPresenter.Content = new YandexPanel { DataContext = CurrentPreset }; break; } }
public async Task CanUploadFile() { var cloud = CloudFactory.CreateCloud(UploadDestinations.Yandex); var preset = new YandexPreset { OAuthToken = "2344534523e45LW2jwerdp-efUwe4rmg" //Put your test token in here. }; //Upload. var history = await cloud.UploadFileAsync(preset, "./Data/Test.txt", CancellationToken.None); Assert.NotNull(history); Assert.False(string.IsNullOrEmpty(history.Link)); Trace.WriteLine("Link: " + history.Link); //Download. var data = await HttpHelper.HttpDownloadFileAsync(history.Link); Assert.NotNull(data); }
private async Task PutAsync(YandexPreset preset, string url, HttpContent content, CancellationToken cancellationToken) { var handler = new HttpClientHandler { Proxy = WebHelper.GetProxy(), PreAuthenticate = true, UseDefaultCredentials = false, }; using (var client = new HttpClient(handler)) { var request = new HttpRequestMessage(HttpMethod.Put, url) { Headers = { { HttpRequestHeader.Authorization.ToString(), "OAuth " + preset.OAuthToken } }, Content = content }; using (await client.SendAsync(request, cancellationToken)) { } } }
public static bool IsAuthorized(YandexPreset preset) { return(!string.IsNullOrWhiteSpace(preset.OAuthToken)); }