Example #1
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);
        }
        /// <summary>
        /// 创建匿名共享
        /// </summary>
        /// <returns>匿名共享ID</returns>
        public string CreatShareLink(string token, CreatShareLinkModel model, out long errorCode)
        {
            try
            {
                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.PostAsync($"{Constant.OAuth2Url}/api/shared-link/v1/document/anonymous", 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($"CreatShareLink Exception: {errModel.cause}, Code: {errModel.code}");
                        errorCode = errModel.code;

                        // 时间无效
                        if (!string.IsNullOrEmpty(errModel.cause) && errModel.cause.Contains("expires") && errModel.code == 400000000)
                        {
                            errorCode = 400001010;
                        }
                        return(string.Empty);
                    }
                    if (resCode == 201)
                    {
                        errorCode = 0;
                        return(JsonConvert.DeserializeObject <ShareLinkItem>(resStr).id);
                    }
                    errorCode = resCode;
                    return(string.Empty);
                }
            }
            catch (Exception ex)
            {
                _log.Debug($"CreatShareLink Exception: {ex.Message}");
                throw ex;
            }
        }
Example #3
0
        public JsonResult CreateShareLink()
        {
            try
            {
                _log.Debug("CreateShareLink Start");
                var tokenId = CommonHelper.GetToken(Request.Form["TokenId"]);
                CreatShareLinkModel item = new CreatShareLinkModel()
                {
                    item = new CItem()
                    {
                        id    = CommonHelper.DecodeUrl(Request.Form["Docid"]),
                        type  = Request.Form["FileType"],
                        perms = GetPerms(Convert.ToInt64(Request.Form["Perm"]))
                    },
                    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();
                long errorCode             = 0;
                var  shareLinkId           = helper.CreatShareLink(tokenId, item, out errorCode);
                if (errorCode > 0)
                {
                    return(Json(new JsonModel {
                        Success = true, StatusCode = errorCode
                    }));
                }

                _log.Debug("CreateShareLink End");
                return(Json(new JsonModel {
                    Success = true, StatusCode = errorCode, Data = shareLinkId
                }));
            }
            catch (Exception ex)
            {
                _log.Debug($"CreateShareLink Exception: {ex.Message}");
                return(Json(new JsonModel {
                    Success = false, Message = ex.Message
                }));
            }
        }
Example #4
0
        public void CreatShareLinkModelTest()
        {
            CItem cItem = new CItem()
            {
                id   = "id",
                perm = 25,
                type = "type"
            };
            var id   = cItem.id;
            var perm = cItem.perm;
            var type = cItem.type;

            Assert.IsTrue(id == "id");
            Assert.IsTrue(perm == 25);
            Assert.IsTrue(type == "type");

            CreatShareLinkModel creatShareLinkModel = new CreatShareLinkModel()
            {
                item          = cItem,
                expires_at    = "expires_at",
                limited_times = 1,
                password      = "******",
                title         = "title"
            };
            var item          = creatShareLinkModel.item;
            var expires_at    = creatShareLinkModel.expires_at;
            var limited_times = creatShareLinkModel.limited_times;
            var password      = creatShareLinkModel.password;
            var title         = creatShareLinkModel.title;

            Assert.IsTrue(item == cItem);
            Assert.IsTrue(expires_at == "expires_at");
            Assert.IsTrue(limited_times == 1);
            Assert.IsTrue(password == "password");
            Assert.IsTrue(title == "title");
        }