/// <summary> /// Return an HttpRequestMessage which represents the given seafile request /// </summary> /// <typeparam name="T"></typeparam> /// <param name="serverUri"></param> /// <param name="request"></param> /// <returns></returns> public HttpRequestMessage CreateHttpRequestMessage <T>(Uri serverUri, SeafRequest <T> request) { Uri targetUri; if (string.IsNullOrEmpty(serverUri.LocalPath)) { targetUri = new Uri(serverUri, request.CommandUri); } else { string localpath = serverUri.LocalPath; if (!localpath[localpath.Length - 1].Equals('/')) { localpath += '/'; } targetUri = new Uri(serverUri, localpath + request.CommandUri); } switch (request.HttpAccessMethod) { case HttpAccessMethod.Get: return(HttpUtils.CreateSimpleRequest(HttpMethod.Get, targetUri, request.GetAdditionalHeaders())); case HttpAccessMethod.Post: return(HttpUtils.CreatePostRequest(targetUri, request.GetAdditionalHeaders(), request.GetPostParameters())); case HttpAccessMethod.Put: return(HttpUtils.CreatePutRequest(targetUri, request.GetAdditionalHeaders(), request.GetPostParameters())); case HttpAccessMethod.Delete: return(HttpUtils.CreateSimpleRequest(HttpMethod.Delete, targetUri, request.GetAdditionalHeaders())); case HttpAccessMethod.Custom: return(request.GetCustomizedRequest(serverUri)); default: throw new ArgumentException("Unsupported method: " + request.HttpAccessMethod.ToString()); } }
/// <summary> /// Return an HttpRequestMessage which represents the given seafile request /// </summary> /// <typeparam name="T"></typeparam> /// <param name="serverUri"></param> /// <param name="request"></param> /// <returns></returns> public HttpRequestMessage CreateHttpRequestMessage <T>(Uri serverUri, SeafRequest <T> request) { var targetUri = new Uri(serverUri, request.CommandUri); switch (request.HttpAccessMethod) { case HttpAccessMethod.Custom: return(request.GetCustomizedRequest(serverUri)); default: return(HttpUtils.CreateRequest(GetHttpMethod(request.HttpAccessMethod), targetUri, request.GetAdditionalHeaders(), request.GetBodyParameters())); } }