コード例 #1
0
        public async Task <DocumentCheckResult> GetDocumentUrlByID(DocumentCheckResult result)
        {
            string url = string.Empty;

            try
            {
                string authHeader = GetAuthorizationHeader();
                using (var client = new WebClient())
                {
                    client.Headers.Add(HttpRequestHeader.Authorization, authHeader);
                    client.Headers.Add(HttpRequestHeader.Accept, "application/json");
                    var downloadString = await client.DownloadStringTaskAsync(new Uri(Resource + "/_api/search/query?querytext='DlcDocId:" + result.DocumentId + "'&t=" + (new Random()).Next()));

                    var json = JObject.Parse(downloadString);

                    foreach (JObject jO in (JArray)json["PrimaryQueryResult"]["RelevantResults"]["Table"]["Rows"])
                    {
                        foreach (JObject jA in (JArray)jO["Cells"])
                        {
                            if (jA["Key"].Value <string>() == "Path")
                            {
                                url = jA["Value"].Value <string>();
                                break;
                            }
                        }
                        if (!string.IsNullOrEmpty(url))
                        {
                            break;
                        }
                    }
                    result.IsSuccess = true;
                    if (!string.IsNullOrEmpty(url))
                    {
                        result.DocumentUrl = url;
                        result.IsDeleted   = false;
                    }
                    else
                    {
                        result.IsDeleted = true;
                    }
                }
            }
            catch (Exception ex)
            {
                result.IsSuccess = false;
                result.Message   = ex.Message;
            }
            return(result);
        }
コード例 #2
0
        public async Task <DocumentUpdateResult> UpdateBookmrkValue(string documentId, IEnumerable <DestinationPoint> destinationPoints, string value)
        {
            DocumentUpdateResult retValue = new DocumentUpdateResult()
            {
                IsSuccess = true
            };

            try
            {
                string authHeader = GetAuthorizationHeader();
                DocumentCheckResult documentResult = await GetDocumentUrlByID(new DocumentCheckResult()
                {
                    DocumentId = documentId
                });

                if (documentResult.IsSuccess)
                {
                    FileContextInfo fileContextInfo = await GetFileContextInfo(authHeader, documentResult.DocumentUrl);

                    var stream = await GetFileStream(authHeader, documentResult.DocumentUrl, fileContextInfo);

                    stream.Seek(0, SeekOrigin.Begin);
                    UpdateStream(destinationPoints, value, stream, retValue);
                    await UploadStream(authHeader, documentResult.DocumentUrl, stream, fileContextInfo);

                    return(retValue);
                }
                else
                {
                    retValue.IsSuccess = false;
                    retValue.Message.Add(documentResult.Message);
                }
            }
            catch (Exception ex)
            {
                retValue.IsSuccess = false;
                retValue.Message.Add(ex.ToString());
            }
            return(retValue);
        }