public async Task ChangeFilesAttributesTest() { string url = await UploadATestFile(); FilesAttributesRequest request = new FilesAttributesRequest { urls = new string[] { url }, inline = true }; int count = await _client.ChangeFilesAttributes(request); Assert.AreEqual(1, count); var info = await _client.GetFileFullInfo(url); Assert.AreEqual(true, info.inline); }
/// <summary> /// 修改文件属性。 /// </summary> /// <param name="filesAttributes">文件修改请求,详见FilesAttributesRequest注释。</param> /// <returns>被修改的文件个数</returns> /// <exception cref="InvalidApiKeyException">非法的API Key。</exception> /// <exception cref="CommonException">服务器返回的错误。</exception> public async Task <int> ChangeFilesAttributes(FilesAttributesRequest filesAttributes) { await WaitToOperation(); using (var http = GetHttpClient(true)) { string request = JsonConvert.SerializeObject(filesAttributes); HttpContent content = GetJsonContent(request); var response = await http.PostAsync("https://api.1fichier.com/v1/file/chattr.cgi", content); string json = await response.Content.ReadAsStringAsync(); CheckResponse(json); var result = JsonConvert.DeserializeObject <dynamic>(json); return(result.updated); } }
public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer) { FilesAttributesRequest attr = (FilesAttributesRequest)value; JObject o = new JObject(); o["urls"] = JArray.FromObject(attr.urls); if (attr.fileName != null) { o["fileName"] = attr.fileName; } if (attr.description != null) { o["description"] = attr.description; } if (attr.pass != null) { o["pass"] = attr.pass; } if (attr.noSsl.HasValue) { o["no_ssl"] = attr.noSsl.Value ? 1 : 0; } if (attr.inline.HasValue) { o["inline"] = attr.inline.Value ? 1 : 0; } if (attr.cdn.HasValue) { o["cdn"] = attr.cdn.Value ? 1 : 0; } if (attr.acl.HasValue) { JObject acl = new JObject(); var aclv = attr.acl.Value; if (aclv.ip != null) { acl["ip"] = JArray.FromObject(aclv.ip); } if (aclv.country != null) { acl["country"] = JArray.FromObject(aclv.country); } if (aclv.email != null) { acl["email"] = JArray.FromObject(aclv.email); } if (aclv.premium.HasValue) { acl["premium"] = aclv.premium.Value ? 1 : 0; } if (acl.HasValues) { o["acl"] = acl; } } o.WriteTo(writer); }