getFileDataString: Get the FileData in string form
/// <summary>Process /// <para> /// Process: Internal function to convert a RosetteFile into a dictionary to use for getResponse /// </para> /// </summary> /// <param name="file">RosetteFile: File being uploaded to use as a request to the Rosette server.</param> /// <returns>Dictionary<string, object>: Dictionary containing the results of the response from the server from the getResponse call.</returns> private Dictionary<string, Object> Process(RosetteFile file) { Dictionary<string, string> dict = new Dictionary<string, string>(){ { "content", file.getFileDataString()}, { "contentType", file.getDataType()}, { "unit", "doc"}, }; if(file.getOptions() != null){ Dictionary<string, string> opts = new JavaScriptSerializer().Deserialize<Dictionary<string, string>>(file.getOptions()); dict = (Dictionary<string, string>)dict.Concat(opts.Where(x=> !dict.Keys.Contains(x.Key))); } return getResponse(SetupClient(), new JavaScriptSerializer().Serialize(dict)); }
public void RosetteFileClassTest() { string tmpFile = Path.GetTempFileName(); StreamWriter sw = File.AppendText(tmpFile); sw.WriteLine("Rosette API Unit Test"); sw.Flush(); sw.Close(); RosetteFile f = new RosetteFile(tmpFile, "application/octet-stream", null); Assert.IsNotNull(f.Filename, "Filename is null"); Assert.AreEqual(tmpFile, f.Filename, "Filename does not match"); Assert.AreEqual("application/octet-stream", f.ContentType, "ContentType does not match"); Assert.IsNull(f.Options, "Options does not match"); byte[] b = f.getFileData(); Assert.IsTrue(b.Count() > 0, "File is empty"); string content = f.getFileDataString(); Assert.IsTrue(content.Length > 0, "File is empty"); MultipartContent multiPart = f.AsMultipart(); Assert.IsTrue(multiPart.Headers.Count() > 0, "Multipart not populated"); f.Dispose(); if (File.Exists(tmpFile)) { File.Delete(tmpFile); } }