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); }
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); }