void ComPosNotifMsg () { //recupération des messages webservice //insertion en base //recupation des messages / notifications / POS GPS //Post sur le webservice //maj du badge //API GPS OK string _url = "http://dms.jeantettransport.com/api/WSV3"; string dbPath = System.IO.Path.Combine (System.Environment.GetFolderPath (System.Environment.SpecialFolder.Personal), "ormDMS.db3"); var db = new SQLiteConnection (dbPath); DBRepository dbr = new DBRepository (); var webClient = new WebClient (); try { string content_msg = String.Empty; //ROUTINE INTEG MESSAGE try { //API LIVRER OK string _urlb = "http://dms.jeantettransport.com/api/WSV3?codechauffeur=" + userAndsoft +""; var webClientb = new WebClient (); webClientb.Headers [HttpRequestHeader.ContentType] = "application/json"; //webClient.Encoding = Encoding.UTF8; content_msg = webClientb.DownloadString (_urlb); } catch (Exception ex) { content_msg = "[]"; Insights.Report (ex,Xamarin.Insights.Severity.Error); } if (content_msg != "[]") { JsonArray jsonVal = JsonArray.Parse (content_msg) as JsonArray; var jsonarr = jsonVal; foreach (var item in jsonarr) { if (item["texteMessage"].ToString().Length < 9) { var resinteg = dbr.InsertDataMessage (item ["codeChauffeur"], item ["utilisateurEmetteur"], item ["texteMessage"],0,DateTime.Now,1,item ["numMessage"]); var resintegstatut = dbr.InsertDataStatutMessage(0,DateTime.Now,item ["numMessage"],"",""); alertsms (); }else{ switch(item ["texteMessage"].ToString().Substring(1,9)) { case "%%SUPPLIV": var updatestat = dbr.updatePositionSuppliv((item ["texteMessage"].ToString()).Remove((item ["texteMessage"].ToString()).Length - 3).Substring(11)); dbr.InsertDataStatutMessage (1,DateTime.Now,item ["numMessage"],"",""); dbr.InsertDataMessage (item ["codeChauffeur"], item ["utilisateurEmetteur"],"La position "+(item ["texteMessage"].ToString()).Remove((item ["texteMessage"].ToString()).Length - 3).Substring(11)+" a été supprimée de votre tournée",0,DateTime.Now,1, item ["numMessage"]); File.AppendAllText(log_file,"["+DateTime.Now.ToString("t")+"]"+"[SYSTEM]Réception d'un SUPPLIV à "+DateTime.Now.ToString("t")+"\n"); break; case "%%RETOLIV": var updatestattretour = db.Query<TablePositions>("UPDATE TablePositions SET imgpath = null WHERE numCommande = ?",(item ["texteMessage"].ToString()).Remove((item ["texteMessage"].ToString()).Length - 3).Substring(11)); var resstatutbis = dbr.InsertDataStatutMessage (1,DateTime.Now,item ["numMessage"],"",""); break; case "%%SUPPGRP": var supgrp = db.Query<TablePositions>("DELETE from TablePositions where groupage = ?",(item ["texteMessage"].ToString()).Remove((item ["texteMessage"].ToString()).Length - 3).Substring(11)); var ressupgrp = dbr.InsertDataStatutMessage (1,DateTime.Now,item ["numMessage"],"",""); break; case "%%GETFLOG": //ftp://77.158.93.75 or ftp://10.1.2.75 File.AppendAllText(log_file,"["+DateTime.Now.ToString("t")+"]"+"[SYSTEM]Réception d'un GETFLOG à "+DateTime.Now.ToString("t")+"\n"); Thread thread = new Thread(() => UploadFile("ftp://77.158.93.75",Data.log_file,"DMS","Linuxr00tn","")); thread.Start (); dbr.InsertDataStatutMessage(0,DateTime.Now,item ["numMessage"],"",""); break; case "%%COMMAND": File.AppendAllText(log_file,"["+DateTime.Now.ToString("t")+"]"+"[SYSTEM]Réception d'un COMMAND à "+DateTime.Now.ToString("t")+"\n"); InsertData (); break; default: var resinteg = dbr.InsertDataMessage (item ["codeChauffeur"], item ["utilisateurEmetteur"], item ["texteMessage"],0,DateTime.Now,1,item ["numMessage"]); dbr.InsertDataStatutMessage(0,DateTime.Now,item ["numMessage"],"",""); alertsms (); Console.WriteLine (item ["numMessage"].ToString()); Console.WriteLine (resinteg); break; } } } } //SET des badges dbr.SETBadges(Data.userAndsoft); String datajson = string.Empty; String datagps=string.Empty; String datamsg=string.Empty; String datanotif=string.Empty; datagps = "{\"posgps\":\"" + GPS + "\",\"userandsoft\":\"" + userAndsoft + "\"}"; var tablestatutmessage = db.Query<TableNotifications> ("SELECT * FROM TableNotifications"); //SEND NOTIF foreach (var item in tablestatutmessage) { datanotif += "{\"statutNotificationMessage\":\"" + item.statutNotificationMessage + "\",\"dateNotificationMessage\":\"" + item.dateNotificationMessage + "\",\"numMessage\":\""+item.numMessage+"\",\"numCommande\":\""+item.numCommande+"\",\"groupage\":\""+item.groupage+"\"},"; } //SEND MESSAGE var tablemessage = db.Query<TableMessages> ("SELECT * FROM TableMessages WHERE statutMessage = 2"); foreach (var item in tablemessage) { datamsg += "{\"codeChauffeur\":\"" + item.codeChauffeur + "\",\"texteMessage\":\"" + item.texteMessage + "\",\"utilisateurEmetteur\":\""+item.utilisateurEmetteur+"\",\"dateImportMessage\":\""+item.dateImportMessage+"\",\"typeMessage\":\""+item.typeMessage+"\"},"; } if(datanotif == ""){ datanotif ="{}"; }else{ datanotif = datanotif.Remove(datanotif.Length - 1); } if(datamsg == ""){ datamsg ="{}"; }else{ datamsg = datamsg.Remove(datamsg.Length - 1); } datajson = "{\"suivgps\":"+datagps+",\"statutmessage\":["+datanotif+"],\"Message\":["+datamsg+"]}"; //API MSG/NOTIF/GPS try{ webClient.Headers [HttpRequestHeader.ContentType] = "application/json"; webClient.UploadString (_url,datajson); foreach (var item in tablestatutmessage) { var resultdelete = dbr.deletenotif(item.Id); } foreach (var item in tablemessage) { var updatestatutmessage = db.Query<TableMessages> ("UPDATE TableMessages SET statutMessage = 3 WHERE _Id = ?",item.Id); } } catch (Exception e) { Insights.Report (e,Xamarin.Insights.Severity.Error); File.AppendAllText(log_file,"["+DateTime.Now.ToString("t")+"]"+"[ERROR] POSTMSG/NOTIF/GPS : "+e+" à "+DateTime.Now.ToString("t")+"\n"); } } catch (Exception ex) { Insights.Report (ex,Xamarin.Insights.Severity.Error); Console.Out.Write(ex); File.AppendAllText(log_file,"["+DateTime.Now.ToString("t")+"]"+"[ERROR] ComPosNotifMsg : "+ex+" à "+DateTime.Now.ToString("t")+"\n"); } Console.WriteLine ("\nTask ComPosGps done"); }