/// <summary> /// Permet de récupérer les coordonnées d'une adresse /// </summary> /// <param name="address"></param> /// <returns>Adresse avec les coordonnées</returns> public async Task <GeolocByAddress> GetGeolocAsync(string address) { GeolocByAddress result = null; result = await this.SafeRequest(async() => { string response = await this._cob.GetGeolocAsync(address); result = JsonConvert.DeserializeObject <GeolocByAddress>(response); return(result); }); return(result); }
/// <summary> /// Invoqué lorsque cette page est sur le point d'être affichée dans un frame. /// </summary> /// <param name="e">Données d’événement décrivant la manière dont l’utilisateur a accédé à cette page. /// Ce paramètre est généralement utilisé pour configurer la page.</param> protected override async void OnNavigatedTo(NavigationEventArgs e) { // TODO: préparer la page pour affichage ici. // TODO: si votre application comporte plusieurs pages, assurez-vous que vous // gérez le bouton Retour physique en vous inscrivant à l’événement // Windows.Phone.UI.Input.HardwareButtons.BackPressed. // Si vous utilisez le NavigationHelper fourni par certains modèles, // cet événement est géré automatiquement. this._mapService.StartFollowUser(Map); await this._mapService.CenterMapOnUserPositionAsync(Map); await this.DisplayEvents(); if (e.Parameter != null) { if (e.Parameter.GetType() == typeof(LoginModel)) { LoginModel loginModel = e.Parameter as LoginModel; if (loginModel.Type == TypeEnum.Login) { try { await this.Login(loginModel); // pas le bon bouton? CommandBar.SecondaryCommands.RemoveAt(0); this.AddDecoButton(); } catch (Exception ex) { this.GenerateMessageDialog("Erreur lors de la connexion, vérifiez vos identifiants de connexion."); } } else { try { User user = await this._apiService.RegisterAsync(loginModel.Login, loginModel.Pass, loginModel.Mail); await this.Login(loginModel); CommandBar.SecondaryCommands.RemoveAt(0); this.AddDecoButton(); } catch (Exception ex) { this.GenerateMessageDialog("Erreur lors de l'enregistrement."); } } } else if (e.Parameter.GetType() == typeof(EventModel)) { try { EventModel eventModel = e.Parameter as EventModel; // timestamp = dt(utc) - dt(1970) + dt - dt // timestamp = dt - dt(1970) + dt(utc) - dt et dt(utc) - dt = dtnow(utc) - dtnow int offset = (int)DateTime.UtcNow.Subtract(DateTime.Now).TotalSeconds; int timestamp = (int)eventModel.Date.Subtract(new DateTime(1970, 1, 1, 0, 0, 0)).TotalSeconds + offset; string address = string.Format("{0} {1}", eventModel.Address, eventModel.City); GeolocByAddress geoloc = await this._apiService.GetGeolocAsync(address); EventPost eventPost = new EventPost() { Name = eventModel.Name, Date = timestamp, Latitude = geoloc.Latitude, Longitude = geoloc.Longitude, Address = eventModel.Address, City = eventModel.City }; EventGet eventGet = await this._apiService.PostEventAsync(eventPost); this.DisplayEvent(eventGet); this._eventList.Add(eventGet); } catch (Exception ex) { this.GenerateMessageDialog("Erreur lors de l'envoi de l'évènement."); } } } }