示例#1
0
        public JsonResult UpdateShareLink()
        {
            try
            {
                _log.Debug("UpdateShareLink Start");
                var tokenId = CommonHelper.GetToken(Request.Form["TokenId"]);
                UpdateShareLinkModel item = new UpdateShareLinkModel()
                {
                    item = new UItem()
                    {
                        perms = GetPerms(Convert.ToInt64(Request.Form["Perm"]))
                    },
                    link_id       = CommonHelper.DecodeUrl(Request.Form["LinkId"]),
                    expires_at    = CommonHelper.DecodeUrl(Request.Form["ExpiresAt"]),
                    limited_times = string.IsNullOrEmpty(Request.Form["LimitedTimes"]) ? -1 : Convert.ToInt64(Request.Form["LimitedTimes"]),
                    password      = string.IsNullOrEmpty(Request.Form["Password"]) ? "" : CommonHelper.DecodeUrl(Request.Form["Password"]),
                    title         = CommonHelper.DecodeUrl(Request.Form["Title"])
                };

                IShareLinkAPIHelper helper = new ShareLinkAPIHelper();
                var errorCode = helper.UpdateShareLink(tokenId, item);
                _log.Debug("UpdateShareLink End");
                return(Json(new JsonModel {
                    Success = true, StatusCode = errorCode
                }));
            }
            catch (Exception ex)
            {
                _log.Debug($"UpdateShareLink Exception: {ex.Message}");
                return(Json(new JsonModel {
                    Success = false, Message = ex.Message
                }));
            }
        }
示例#2
0
        public void UpdateShareLink()
        {
            CreatShareLinkModel item = new CreatShareLinkModel()
            {
                item = new CItem()
                {
                    id   = TestData.fileId,
                    type = "file",
                    perm = 7
                },
                expires_at    = "2020-09-30T08:00:00+08:00",
                limited_times = 10,
                password      = "******",
                title         = TestData.fileName
            };
            var linkId = helper.CreatShareLink(TestData.access_token, item, out long code);

            UpdateShareLinkModel uitem = new UpdateShareLinkModel()
            {
                item = new UItem()
                {
                    perm = 7
                },
                link_id       = linkId,
                expires_at    = "2020-10-30T08:00:00+08:00",
                limited_times = 10,
                password      = "******",
                title         = TestData.fileName
            };
            var code2 = helper.UpdateShareLink(TestData.access_token, uitem);

            Assert.IsNotNull(linkId);
            Assert.IsNotNull(code2);
        }
示例#3
0
        public void UpdateShareLinkModelTest()
        {
            UItem uItem = new UItem()
            {
                perm = 25
            };
            var perm = uItem.perm;

            Assert.IsTrue(perm == 25);

            UpdateShareLinkModel updateShareLinkModel = new UpdateShareLinkModel()
            {
                item          = uItem,
                expires_at    = "expires_at",
                limited_times = 10,
                link_id       = "link_id",
                password      = "******",
                title         = "title",
            };
            var item          = updateShareLinkModel.item;
            var expires_at    = updateShareLinkModel.expires_at;
            var limited_times = updateShareLinkModel.limited_times;
            var link_id       = updateShareLinkModel.link_id;
            var password      = updateShareLinkModel.password;
            var title         = updateShareLinkModel.title;

            Assert.IsTrue(item == uItem);
            Assert.IsTrue(limited_times == 10);
            Assert.IsTrue(expires_at == "expires_at");
            Assert.IsTrue(link_id == "link_id");
            Assert.IsTrue(password == "password");
            Assert.IsTrue(title == "title");
        }
        /// <summary>
        /// 修改匿名共享
        /// </summary>
        /// <returns>匿名共享</returns>
        public long UpdateShareLink(string token, UpdateShareLinkModel model)
        {
            try
            {
                long errorCode = 0;
                var  handler   = new WebRequestHandler();
                handler.ServerCertificateValidationCallback = delegate { return(true); };
                using (var httpClient = new HttpClient(handler))
                {
                    httpClient.DefaultRequestHeaders.Add("Authorization", token);

                    var json    = JsonConvert.SerializeObject(model);
                    var content = new StringContent(json, Encoding.UTF8, "application/json");
                    var res     = httpClient.PutAsync($"{Constant.OAuth2Url}/api/shared-link/v1/document/anonymous/{model.link_id}", content).Result;
                    var resStr  = res.Content.ReadAsStringAsync().Result;

                    int resCode = (int)res.StatusCode;
                    // 若为错误返回码则抛出异常
                    if (resCode < 200 || resCode >= 300)
                    {
                        var errModel = JsonConvert.DeserializeObject <ErrorModel>(resStr);
                        _log.Debug($"UpdateShareLink Exception: {errModel.cause}, Code: {errModel.code}");
                        errorCode = errModel.code;

                        // 时间无效
                        if (!string.IsNullOrEmpty(errModel.cause) && errModel.cause.Contains("expires") && errModel.code == 400000000)
                        {
                            errorCode = 400001010;
                        }

                        return(errorCode);
                    }
                    if (resCode != 204)
                    {
                        errorCode = resCode;
                    }
                    return(errorCode);
                }
            }
            catch (Exception ex)
            {
                _log.Debug($"UpdateShareLink Exception: {ex.Message}");
                throw ex;
            }
        }