Exemple #1
0
		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");
		}