DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof(SalesOrder));
//write newly created object() into memory stream
serializer.WriteObject(serializememoryStream, orderentity); // I CAN SEE ALL DATA JSON IN orderentity , however only few orderlines go through not all .
serializememoryStream.Position = 0;
StreamReader sr = new StreamReader(serializememoryStream);
string json = sr.ReadToEnd();
//get JSON data serialized in string format in string variable
string serializedresult = Encoding.UTF8.GetString(serializememoryStream.ToArray());
//tracer.Trace("serialised data" + serializedresult);
byte[] requestData = Encoding.UTF8.GetBytes(serializedresult);
request.Method = "POST";
request.ContentType = "application/json";
request.ContentLength = requestData.Length;
request.KeepAlive = false;
request.Credentials = new NetworkCredential(_username, _password);
ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3 | SecurityProtocolType.Tls12 |
SecurityProtocolType.Tls11 | SecurityProtocolType.Tls;
Stream requestStream = request.GetRequestStream();
requestStream.Write(requestData, 0, requestData.Length);
try
{
string objText;
using (var response = request.GetResponse()) // AT THIS LINE RESPONSE EXCEPTION COMES AS 400 BAD REQUEST WHERE MY PARTIAL DATA IS SENT, ALL DATA DOES NOT GO
{
var reader = new StreamReader(response.GetResponseStream());
objText = reader.ReadToEnd();
}
//Json String that we get from web api
string responseString = objText;
//tracer.Trace(" response" + responseString);
Result deserialisedresult = new Result();
DataContractJsonSerializer resultserializer =
new DataContractJsonSerializer(deserialisedresult.GetType());
MemoryStream deSerializememoryStream = new MemoryStream(Encoding.UTF8.GetBytes(responseString));
//get the Desrialized data in object of type Result
deserialisedresult = (Result)resultserializer.ReadObject(deSerializememoryStream);
deSerializememoryStream.Close();
//updatestatus to inprogress
Entity toupdate = new Entity("salesorder") { Id = salesorderentity.Id };
//toupdate["asc_netsuiteintegrationstatuscode"] = new OptionSetValue(860000002);
//toupdate["asc_netsuiteintegrationdetailstxt"] = "Data update submitted on " + DateTime.Now.ToShortDateString();
if (iscreate)
toupdate["submitdate"] = DateTime.Now;
//service.Update(toupdate);
}
catch (Exception e)
{
//updatestatus to error
Entity toupdate = new Entity("salesorder") { Id = salesorderentity.Id };
toupdate["asc_netsuiteintegrationstatuscode"] = new OptionSetValue(860000004);
toupdate["asc_netsuiteintegrationdetailstxt"] = "Error: " + e.Message;
//service.Update(toupdate);
}
}