public BulkResult EndBulkLoad(StreamWriter writer, bool returnResults = true)
        {
            var request = _requests[writer.GetHashCode()];
            writer.Flush();
            writer.BaseStream.Flush();
            writer.BaseStream.Dispose();
            writer.Dispose();

            try
            {
                using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
                {
                    if (returnResults)
                    {
                        string json = string.Empty;
                        using (var responseStream = response.GetResponseStream())
                        using (var reader = new StreamReader(responseStream))
                        {
                            json = reader.ReadToEnd();
                        }

                        return BulkResult.Parse(json);
                    }
                    else
                    {
                        return null;
                    }
                }
            }
            catch (WebException webEx)
            {
                string result = string.Empty;
                using (var exStream = webEx.Response.GetResponseStream())
                using (var reader = new StreamReader(exStream))
                {
                    result = reader.ReadToEnd();
                }

                throw new WebException(result, webEx);
            }
        }
 public StreamWriter BeginBulkLoad()
 {
     var request = GetRequest("POST", "/_bulk");
     var stream = request.GetRequestStream();
     var writer = new StreamWriter(stream);
     _requests.Add(writer.GetHashCode(), request);
     return writer;
 }