private void ConnectJsonpButton_Click(object sender, RoutedEventArgs e) { List <Planning> OrderList = new List <Planning>(); Planning Pedido = new Planning(); //creamos un listado de pedidos //Pedido.CreateOrderList(OrderList, JasonQue.Text.Trim()); for (int i = 0; i < OrderList.Count; i++) { //ToJSONRepresentationOrderAndSend((Planning)OrderList[i], JasonQue.Text.Trim()); } //Conversion de objetos to json }
public List <Planning> CreateOrderList(List <Planning> OrderList, string Que) { Planning Pedido = new Planning(); Pedido.reference = "3456HG"; Pedido.id = 1; Pedido.longitude = 24; Pedido.startDate = DateTime.Now; Pedido.FinalDate = DateTime.Now; Pedido.Quee = Que; OrderList.Add(Pedido); Planning Pedido1 = new Planning(); Pedido1.id = 2; Pedido1.reference = "23233HG2"; Pedido1.longitude = 35; Pedido1.startDate = DateTime.Now; Pedido1.FinalDate = DateTime.Now; Pedido1.Quee = Que; OrderList.Add(Pedido1); Planning Pedido2 = new Planning(); Pedido2.id = 5; Pedido2.reference = "2323GTYH"; Pedido2.longitude = 23; Pedido2.startDate = DateTime.Now; Pedido2.FinalDate = DateTime.Now; Pedido2.Quee = Que; OrderList.Add(Pedido2); Planning Pedido3 = new Planning(); Pedido3.id = 7; Pedido3.reference = "245HT"; Pedido3.longitude = 323; Pedido3.startDate = DateTime.Now; Pedido3.FinalDate = DateTime.Now; Pedido3.Quee = Que; OrderList.Add(Pedido3); return(OrderList); }
public static void ToJSONRepresentationOrderAndSend(Planning Order, string Quee) { try { string newJson = ""; string URLFinal = ""; string URLPrueva = ""; DataTable Order_Operator_Sent; bool InsertPlanned = true; //comprobación si la planificación se ha enviado o no con anterioridad Files.Json.Planning_Vitogas_InsertDataSet ds = new Files.Json.Planning_Vitogas_InsertDataSet(); Files.Json.Planning_Vitogas_InsertDataSetTableAdapters.Order_Operator_SummariesTableAdapter Order_Operator_Summaries = new Files.Json.Planning_Vitogas_InsertDataSetTableAdapters.Order_Operator_SummariesTableAdapter(); Order_Operator_Sent = Order_Operator_Summaries.GetDataSendByIdOrder1(Convert.ToInt64(Order.id)); //la planificación existe no se vuelve a enviar if (Order_Operator_Sent.Rows.Count > 0) { InsertPlanned = false; } //si el data send es nulo representa que la planificación no se ha enviado (realizamos la petición http para enviarla) if (InsertPlanned) { string JasonString = Order.CreateJasonPlanning(); MessageBox.Show("Formato Jason: " + JasonString); //construimos la url para realizar la peticion http URLFinal = "http://localhost:21935/tdi/AMMForm?info_Target=" + Quee; //realizamos la peticion http a tmobility (api rest) var request = (HttpWebRequest)WebRequest.Create(URLFinal); request.Method = "POST"; request.ContentType = "application/json"; request.ContentLength = JasonString.Length; StreamWriter requestWriter = new StreamWriter(request.GetRequestStream(), System.Text.Encoding.ASCII); requestWriter.Close(); //obtenemos la respuesta Tmobility System.Net.WebResponse webResponse = request.GetResponse(); Stream webStream = webResponse.GetResponseStream(); StreamReader responseReader = new StreamReader(webStream); string response = responseReader.ReadToEnd(); //tratamos la respuesta obtenida de Tmobility response = response.Replace("\\", ""); response = response.Substring(1, response.Length - 2); string comprobaciódatoInf = ",\"INF\":\""; string comprobaciónError = ",\"RES\":\"ERR\","; //si la respuesta se detecta que continer el campo INF o ERRO informado //damos por hecho que habido un error bool comprobaciódatoCampoinfo = response.Contains(comprobaciódatoInf); bool comprobacióndatoCampoError = response.Contains(comprobaciónError); if (comprobaciódatoCampoinfo || comprobacióndatoCampoError) { int indice_empieza = response.IndexOf(comprobaciódatoInf); //contamos a partir del campo INF de la respuesta Jason (sumando las posiciones que ocupa INFO:(separaciones) int principio_de_cadena = indice_empieza + 8; //del total le restamos los 5 corchetes del final y buscamos el numero de posiciones que necesitamos recorrer int final_cadena = response.Length - 5 - principio_de_cadena; //obtenemos el mensaje de error string Mensaje_de_error = response.Substring(principio_de_cadena, final_cadena); MessageBox.Show("El pedido no se ha enviado correctamente error :" + Mensaje_de_error); } else { Files.Json.Planning_Vitogas_InsertDataSetTableAdapters.Order_Operator_SentTableAdapter tableAdapterOrderBitogas2 = new Files.Json.Planning_Vitogas_InsertDataSetTableAdapters.Order_Operator_SentTableAdapter(); var rowOrder_Operator_Sent = ds.Order_Operator_Sent.NewOrder_Operator_SentRow(); rowOrder_Operator_Sent.Id_Order = Order.id; rowOrder_Operator_Sent.StartDate = Order.startDate; rowOrder_Operator_Sent.SendData = DateTime.Now; rowOrder_Operator_Sent.SendQueue = Quee; //inserción tabla products //agregamos la nueva fila a tabla Order_Operator_Sent ds.Order_Operator_Sent.AddOrder_Operator_SentRow(rowOrder_Operator_Sent); tableAdapterOrderBitogas2.Update(ds.Order_Operator_Sent); MessageBox.Show("pedido insertado correctamente"); } } else { MessageBox.Show("La planificiación ya ha sido enviada: "); } //responseReader.Close(); } catch (Exception e) { MessageBox.Show("Error es:" + e.ToString()); } }