Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        /// <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);
        }