/* * Immediately convert file on a server * In case of success returned converted file as Stream * In case of any error exception will be throw */ public async Task <Stream> Convert(DocType doctype, Stream file, ConversionOptions options) { HttpClient client = new HttpClient(); client.BaseAddress = new Uri(Url); client.DefaultRequestHeaders.Accept.Clear(); client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); ConversionSettings settings = new ConversionSettings(Domain, Username, Password); settings.Options = options; // get file content using (MemoryStream ms = new MemoryStream()) { file.CopyTo(ms); byte[] bytes = ms.ToArray(); settings.Content = System.Convert.ToBase64String(bytes); } HttpResponseMessage response = await client.PostAsJsonAsync("api/convert/file/" + doctype.ToString(), settings); OASResponse resp = null; if (response.IsSuccessStatusCode) { resp = await response.Content.ReadAsAsync <OASResponse>(); if (resp.ErrorCode == OASErrorCodes.Success) { MemoryStream ms = new MemoryStream(System.Convert.FromBase64String(resp.Content)); return(ms); } else { OASConversionException ex = new OASConversionException(resp.Message); ex.Source = resp.ErrorCode.ToString(); throw ex; } } else { OASWebServiceException ex = new OASWebServiceException(response.ReasonPhrase); ex.Source = response.StatusCode.ToString(); throw ex; } }
/* * Get converted file as result of convertion job * In case of not ready yet null value will be returned * In case of any error exception will the fired */ public async Task <Stream> GetConvertedFile(string FileId) { HttpClient client = new HttpClient(); client.BaseAddress = new Uri(Url); client.DefaultRequestHeaders.Accept.Clear(); client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); ConversionSettings settings = new ConversionSettings(Domain, Username, Password); HttpResponseMessage response = await client.PostAsJsonAsync("api/convert/getfile/" + FileId, settings); OASResponse resp = null; if (response.IsSuccessStatusCode) { resp = await response.Content.ReadAsAsync <OASResponse>(); if (resp.ErrorCode == OASErrorCodes.Success) { MemoryStream ms = null; if (resp.Content != null) { ms = new MemoryStream(System.Convert.FromBase64String(resp.Content)); } return(ms); } else { OASConversionException ex = new OASConversionException(resp.Message); ex.Source = resp.ErrorCode.ToString(); throw ex; } } else { OASWebServiceException ex = new OASWebServiceException(response.ReasonPhrase); ex.Source = response.StatusCode.ToString(); throw ex; } }