/// <summary> /// The method is to convert the file to the required format /// </summary> /// <param name="documentUri">Uri for the document to convert</param> /// <param name="fromExtension">Document extension</param> /// <param name="toExtension">Extension to which to convert</param> /// <param name="documentRevisionId">Key for caching on service</param> /// <param name="isAsync">Perform conversions asynchronously</param> /// <param name="convertedDocumentUri">Uri to the converted document</param> /// <returns>The percentage of completion of conversion</returns> /// <example> /// string convertedDocumentUri; /// GetConvertedUri("http://helpcenter.onlyoffice.com/content/GettingStarted.pdf", ".pdf", ".docx", "http://helpcenter.onlyoffice.com/content/GettingStarted.pdf", false, out convertedDocumentUri); /// </example> /// <exception> /// </exception> public static int GetConvertedUri(string documentUri, string fromExtension, string toExtension, string documentRevisionId, bool isAsync, out string convertedDocumentUri) { convertedDocumentUri = string.Empty; fromExtension = string.IsNullOrEmpty(fromExtension) ? Path.GetExtension(documentUri) : fromExtension; var title = Path.GetFileName(documentUri); title = string.IsNullOrEmpty(title) ? Guid.NewGuid().ToString() : title; documentRevisionId = string.IsNullOrEmpty(documentRevisionId) ? documentUri : documentRevisionId; documentRevisionId = GenerateRevisionId(documentRevisionId); var request = (HttpWebRequest)WebRequest.Create(DocumentConverterUrl); request.Method = "POST"; request.ContentType = "application/json"; request.Accept = "application/json"; request.Timeout = ConvertTimeout; var body = new Dictionary <string, object>() { { "async", isAsync }, { "filetype", fromExtension.Trim('.') }, { "key", documentRevisionId }, { "outputtype", toExtension.Trim('.') }, { "title", title }, { "url", documentUri } }; if (JwtManager.Enabled) { var payload = new Dictionary <string, object> { { "payload", body } }; var payloadToken = JwtManager.Encode(payload); var bodyToken = JwtManager.Encode(body); request.Headers.Add("Authorization", "Bearer " + payloadToken); body.Add("token", bodyToken); } var bytes = Encoding.UTF8.GetBytes(new JavaScriptSerializer().Serialize(body)); request.ContentLength = bytes.Length; using (var requestStream = request.GetRequestStream()) { requestStream.Write(bytes, 0, bytes.Length); } string dataResponse; using (var response = request.GetResponse()) using (var stream = response.GetResponseStream()) { if (stream == null) { throw new Exception("Response is null"); } using (var reader = new StreamReader(stream)) { dataResponse = reader.ReadToEnd(); } } return(GetResponseUri(dataResponse, out convertedDocumentUri)); }
public static void commandRequest(string method, string key) { string documentCommandUrl = WebConfigurationManager.AppSettings["files.docservice.url.site"] + WebConfigurationManager.AppSettings["files.docservice.url.command"]; var request = (HttpWebRequest)WebRequest.Create(documentCommandUrl); request.Method = "POST"; request.ContentType = "application/json"; var body = new Dictionary <string, object>() { { "c", method }, { "key", key } }; if (JwtManager.Enabled) { var payload = new Dictionary <string, object> { { "payload", body } }; var payloadToken = JwtManager.Encode(payload); var bodyToken = JwtManager.Encode(body); string JWTheader = WebConfigurationManager.AppSettings["files.docservice.header"].Equals("") ? "Authorization" : WebConfigurationManager.AppSettings["files.docservice.header"]; request.Headers.Add(JWTheader, "Bearer " + payloadToken); body.Add("token", bodyToken); } var bytes = Encoding.UTF8.GetBytes(new JavaScriptSerializer().Serialize(body)); request.ContentLength = bytes.Length; using (var requestStream = request.GetRequestStream()) { requestStream.Write(bytes, 0, bytes.Length); } string dataResponse; using (var response = request.GetResponse()) using (var stream = response.GetResponseStream()) { if (stream == null) { throw new Exception("Response is null"); } using (var reader = new StreamReader(stream)) { dataResponse = reader.ReadToEnd(); } } var jss = new JavaScriptSerializer(); var responseObj = jss.Deserialize <Dictionary <string, object> >(dataResponse); if (!responseObj["error"].ToString().Equals("0")) { throw new Exception(dataResponse); } }