/// <summary> /// Returns object containing Base64 encoded Images. /// </summary> /// <param name="id">Id of the Image in SysImage Table</param> /// <returns>Base64 encoded image or error message</returns> public async Task <RequestResponse> GetImageAsync(string id) { string transportUrl = Url.TransportUrl(ActionEnum.SYSIMAGE, Instance.domain) + id; HttpStatusCode Code; HttpWebRequest myHttpWebRequest = (HttpWebRequest)WebRequest.Create(transportUrl); myHttpWebRequest.Method = "GET"; myHttpWebRequest.ContentType = "application/octet-stream"; myHttpWebRequest.CookieContainer = Auth; Uri siteUri = new Uri(transportUrl); foreach (Cookie cookie in Auth.GetCookies(siteUri)) { if (cookie.Name == "BPMCSRF" || cookie.Name == "BPMSESSIONID") { myHttpWebRequest.Headers.Add(cookie.Name, cookie.Value); } } //Send Request try { using (HttpWebResponse myHttpWebResponse = (HttpWebResponse)await myHttpWebRequest.GetResponseAsync().ConfigureAwait(false)) { Code = myHttpWebResponse.StatusCode; if (Instance.BpmSessionId == false) { string val = myHttpWebResponse.Cookies["BPMSESSIONID"].Value; Cookie C = new Cookie("BPMSESSIONID", val); Auth.Add(new Uri(Instance.domain), C); Instance.BpmSessionId = true; } using (Stream myStream = myHttpWebResponse.GetResponseStream()) { //Stream str = myHttpWebResponse.GetResponseStream(); byte[] inBuf = new byte[myHttpWebResponse.ContentLength]; int bytesToRead = (int)inBuf.Length; int bytesRead = 0; while (bytesToRead > 0) { int n = myStream.Read(inBuf, bytesRead, bytesToRead); if (n == 0) { break; } bytesRead += n; bytesToRead -= n; } string PhotoData = Convert.ToBase64String(inBuf); myStream.Close(); myStream.Dispose(); RequestResponse ir = new RequestResponse() { HttpStatusCode = Code, Result = PhotoData, ErrorMessage = null }; return(ir); } } } catch (WebException we) { Code = ((HttpWebResponse)(we).Response).StatusCode; using (StreamReader MyStreamReader = new StreamReader(((HttpWebResponse)(we).Response).GetResponseStream(), true)) { return(new RequestResponse() { HttpStatusCode = Code, Result = null, ErrorMessage = MyStreamReader.ReadToEnd() }); } } }