Exemple #1
0
        public async Task <OwnCloudResponse> SetExpiryDateAsync(SharedOnlineItem onlineItem, DateTime limit)
        {
            var keyValuePairs = new Dictionary <string, string>
            {
                { "expireDate", limit.ToString("yyyy-MM-dd") }
            };

            return(await PostPropertiesAsync(OnlinePathBuilder.FileExpirationApi(_connectionSettings.StorageUri, onlineItem), keyValuePairs, "PUT"));

            // {"ocs":{"meta":{"status":"ok","statuscode":100,"message":null},"data":[]}}
        }
Exemple #2
0
        public async Task <OwnCloudResponse> SetPasswordAsync(SharedOnlineItem onlineItem, string password)
        {
            var keyValuePairs = new Dictionary <string, string>
            {
                { "password", password }
            };

            return(await PostPropertiesAsync(OnlinePathBuilder.FileExpirationApi(_connectionSettings.StorageUri, onlineItem), keyValuePairs, "PUT"));

            // {"ocs":{"meta":{"status":"ok","statuscode":100,"message":null},"data":[]}}
        }
Exemple #3
0
        private async Task StartWork()
        {
            progressBar.Style = ProgressBarStyle.Marquee;

            try
            {
                lblTitle.Text = "Creating share...";
                var friendlyName = _friendlyShareName.Length > 20 ? _friendlyShareName.Substring(0, 20) : _friendlyShareName;
                var rootFolder   = await _client.CreateFolderAsync(string.Format("Share/{0:yyyyMMddhhmmss}-{1}", DateTime.UtcNow, friendlyName), null);

                var format = "Uploading file {0}/{1}...";
                lblTitle.Text     = string.Format(format, 0, _paths.Length);
                progressBar.Style = ProgressBarStyle.Blocks;
                var status = _client.UploadFiles(rootFolder, _paths);
                while (!status.Task.IsFaulted && !status.Task.IsCanceled && !status.Task.IsCompleted)
                {
                    lblTitle.Text     = string.Format(format, status.CurrentFileNo, status.TotalFiles);
                    progressBar.Value = (int)(status.FileProgress * 100);
                    await Task.Delay(100);
                }
                // Task is canceled or something, so close the UI.
                if (!status.Task.IsCompleted)
                {
                    Close();
                    return;
                }

                if (status.Task.IsFaulted)
                {
                    lblTitle.Text    = @"Error";
                    txtShareUrl.Text = status.Task.Exception.InnerException.Message;
                    return;
                }

                var onlineItem = status.Result;
                progressBar.Style = ProgressBarStyle.Marquee;

                lblTitle.Text     = "Creating share...";
                _sharedOnlineItem = await _client.ShareItemAsync(onlineItem);

                txtShareUrl.Text = _sharedOnlineItem.ShareUrl.ToString();

                lblTitle.Text = "Upload completed";

                if (_okPressed)
                {
                    await SetShareProperties();
                }
            }
            catch (TaskCanceledException)
            {
                Close();
            }
            catch (Exception ex)
            {
                lblTitle.Text    = @"Error";
                txtShareUrl.Text = ex.Message;
            }
            finally
            {
                _isUploading      = false;
                progressBar.Style = ProgressBarStyle.Blocks;
                progressBar.Value = 100;
            }
        }
Exemple #4
0
 public static Uri FileExpirationApi(Uri host, SharedOnlineItem sharedItem)
 {
     return(new Uri(SanitizeHost(host) + BaseUrl + "/shares/" + sharedItem.ShareId + "?format=json", UriKind.Absolute));
 }