/// <summary>Interroga TXTango e ritorna un evento contenente lo stato del viaggio. /// Si occupa inoltre di salvare le date di inizio e fine viaggio quanto occorrono i rispettivi eventi.</summary> /// <param name="login">L'oggetto login da inviare a TXTango per l'autenticazione della richiesta.</param> /// <returns>Eventi</returns> public Eventi TXGetStatus(TXTango.Login login) { // richiedo a TXTango lo stato del viaggio PlanningSelection planningSelection = new PlanningSelection(); PlanningItemSelection itemSelection = new PlanningItemSelection(); itemSelection.PlanningSelectionType = enumPlanningItemSelectionType.TRIP; itemSelection.ID = ConfigurationManager.AppSettings["TXTANGO_ID_PREFIX"] + this.Id; planningSelection.Item = itemSelection; ServiceSoapClient service = new ServiceSoapClient(); GetPlanningResult result = service.Get_Planning(login, planningSelection); // creo e ritorno l'evento relativo allo stato di viaggio Eventi evento = new Eventi(); evento.SyncData = DateTime.Now; evento.SyncTask = ConfigurationManager.AppSettings["TXTANGO_TASK_GET_STATUS"]; evento.SyncTipo = ConfigurationManager.AppSettings["TXTEMP_FROM_TXTANGO"]; evento.XmlRequest = Serializer.SerializeObject(planningSelection, SerializationType.XML); evento.XmlResponse = Serializer.SerializeObject(result, SerializationType.XML); if (result.Errors.Length > 0) { log.Error("Errore TXTango: " + result.Errors[0].ErrorCode.ToString()); evento.SyncStato = ConfigurationManager.AppSettings["TXTEMP_STATO_ERRORE"]; evento.Note = "Vedi XmlResponse per i dettagli sugli errori."; } else { // se il viaggio è partito registro la data di inizio viaggio if (result.ItemSelection.Trips[0].Status.ToString() == ConfigurationManager.AppSettings["TXTANGO_STATO_BUSY"]) { this.DataInizio = result.ItemSelection.Trips[0].StartDate.Value; this.Update(); } // se il viaggio è terminato registro la data di fine viaggio if (result.ItemSelection.Trips[0].Status.ToString() == ConfigurationManager.AppSettings["TXTANGO_STATO_FINISHED"]) { this.DataFine = result.ItemSelection.Trips[0].EndDate.Value; this.Update(); } evento.SyncStato = ConfigurationManager.AppSettings["TXTEMP_STATO_SINCRONIZZATO"]; evento.Stato = result.ItemSelection.Trips[0].Status.ToString(); if (evento.Stato == ConfigurationManager.AppSettings["TXTANGO_STATO_FINISHED"]) { evento.Data = this.DataFine; } else if (this.DataInizio != DateTime.MinValue) { evento.Data = this.DataInizio; } } return(evento); }
/// <summary>Interroga TXTango e ritorna un evento contenente lo stato della spedizione.</summary> /// <param name="login">L'oggetto login da inviare a TXTango per l'autenticazione della richiesta.</param> /// <returns>Eventi</returns> public Eventi TXGetStatus(TXTango.Login login) { PlanningSelection planningSelection = new PlanningSelection(); PlanningItemSelection itemSelection = new PlanningItemSelection(); itemSelection.PlanningSelectionType = enumPlanningItemSelectionType.PLACE; itemSelection.ID = ConfigurationManager.AppSettings["TXTANGO_ID_PREFIX"] + this.Id; //itemSelection.ParentID = ConfigurationManager.AppSettings["TXTANGO_ID_PREFIX"] + this.Viaggio.Id; planningSelection.Item = itemSelection; ServiceSoapClient service = new ServiceSoapClient(); GetPlanningResult result = service.Get_Planning(login, planningSelection); Eventi evento = new Eventi(); evento.XmlRequest = Serializer.SerializeObject(planningSelection, SerializationType.XML); evento.XmlResponse = Serializer.SerializeObject(result, SerializationType.XML); if (result.Errors.Length > 0) { log.Error("Errore TXTango: " + result.Errors[0].ErrorCode.ToString()); evento.Stato = ""; evento.SyncStato = ConfigurationManager.AppSettings["TXTEMP_STATO_ERRORE"]; evento.Note = "Vedi XmlResponse per i dettagli sugli errori"; } else { evento.Stato = result.ItemSelection.Places[0].Status.ToString(); if (evento.Stato == ConfigurationManager.AppSettings["TXTANGO_STATO_FINISHED"]) { evento.Data = result.ItemSelection.Places[0].EndDate.Value; } evento.SyncStato = ConfigurationManager.AppSettings["TXTEMP_STATO_SINCRONIZZATO"]; } evento.SyncData = DateTime.Now; evento.SyncTask = ConfigurationManager.AppSettings["TXTANGO_TASK_GET_STATUS"]; evento.SyncTipo = ConfigurationManager.AppSettings["TXTEMP_FROM_TXTANGO"]; return(evento); }