public DropBoxRequest CreateDeleteRequest(string root, string path, string locale = "")
        {
            DropBoxRequest request = new DropBoxRequest
            {
                RequestUrl = DropBoxUrls.DeleteUrl,
                MethodName = new HttpMethod("POST"),
                RequestTimeout = _authenticationOptions.Timeout,
                AuthorizationToken = _authenticationOptions.Token
            };
            request.AddParameter("root", root);
            request.AddParameter("path", path);
            request.AddParameter("locale", locale);

            return request;
        }
        public DropBoxRequest CreateCopyRequest(string root, string from, string to, string locale = "", string fromRef = "")
        {
            DropBoxRequest request = new DropBoxRequest
            {
                RequestUrl = DropBoxUrls.CopyUrl,
                MethodName = new HttpMethod("POST"),
                AuthorizationToken = _authenticationOptions.Token
            };
            request.AddParameter("root", root);
            request.AddParameter("from_path", from);
            request.AddParameter("to_path", to);
            request.AddParameter("locale", locale);
            request.AddParameter("from_copy_ref", fromRef);

            return request;
        }
        public DropBoxRequest CreateMetadataRequest(string path, string fileLimit = "", string hash = "",
            string list = "", string includeDeleted = "", string rev = "", string locale = "",
            string includeMediaInfo = "", string includeMembership = "")
        {
            DropBoxRequest request = new DropBoxRequest
                {
                    RequestUrl = DropBoxUrls.GetMetadataUrl.AsFormat(path),
                    MethodName = new HttpMethod("GET"),
                    RequestTimeout = _authenticationOptions.Timeout,
                    AuthorizationToken = _authenticationOptions.Token
                };
            request.AddParameter("file_limit", fileLimit);
            request.AddParameter("hash", hash);
            request.AddParameter("list", list);
            request.AddParameter("include_deleted", includeDeleted);
            request.AddParameter("rev", rev);
            request.AddParameter("locale", locale);
            request.AddParameter("include_media_info", includeMediaInfo);
            request.AddParameter("include_membership", includeMembership);

            return request;
        }
        public DropBoxRequest CreateCommitChunkUploadRequest(string path, string uploadId, string locale = "", string overwrite = "",
                                                             string parentRev = "", string autorename = "")
        {
            DropBoxRequest request = new DropBoxRequest
            {
                RequestUrl = DropBoxUrls.ChunkCommitUrl.AsFormat(path),
                MethodName = new HttpMethod("POST"),
                AuthorizationToken = _authenticationOptions.Token
            };
            request.AddParameter("upload_id", uploadId);
            request.AddParameter("locale", locale);
            request.AddParameter("overwrite", overwrite);
            request.AddParameter("parent_rev", parentRev);
            request.AddParameter("autorename", autorename);

            return request;
        }
        public DropBoxRequest CreateChunkUploadRequest(Stream content, string uploadId = "", string offset = "")
        {
            DropBoxRequest request = new DropBoxRequest
            {
                RequestUrl = DropBoxUrls.ChunkPutUrl,
                MethodName = new HttpMethod("PUT"),
                AuthorizationToken = _authenticationOptions.Token,
                Content = content
            };

            request.AddParameter("upload_id", uploadId);
            request.AddParameter("offset", offset);

            return request;
        }
        public DropBoxRequest CreateUploadRequest(Stream content, string path, string locale = "", string overwrite = ""
                                      , string parentRev = "", string autorename = "")
        {
            DropBoxRequest request = new DropBoxRequest
            {
                RequestUrl = DropBoxUrls.PutUrl.AsFormat(path),
                MethodName = new HttpMethod("PUT"),
                AuthorizationToken = _authenticationOptions.Token,
                RequestTimeout = _authenticationOptions.Timeout,
                Content = content,
            };
            request.AddParameter("locale", locale);
            request.AddParameter("overwrite", overwrite);
            request.AddParameter("parent_rev", parentRev);
            request.AddParameter("autorename", autorename);

            return request;
        }
        public DropBoxRequest CreateDownloadRequest(string path, string rev = "")
        {
            DropBoxRequest request = new DropBoxRequest
            {
                RequestUrl = DropBoxUrls.GetUrl.AsFormat(path),
                MethodName = new HttpMethod("GET"),
                RequestTimeout = _authenticationOptions.Timeout,
                AuthorizationToken = _authenticationOptions.Token
            };
            request.AddParameter("rev", rev);

            return request;
        }