private async Task controleInput(DateTime date) { checkConnectivity(); // controleren of opgegeven data niet in het verleden ligt if (date < DateTime.Now) { //alert await DisplayAlert("Foutmelding", "De etappe kan niet in het verleden plaats vinden", "OK"); } // controleren of er 1 of meerdere laps zijn if (laps < 1) { //alert await DisplayAlert("Foutmelding", "Er moet minstens 1 lap gereden worden", "OK"); } //controleren als alles goed is if (date > DateTime.Now && laps > 0) { //dataverwerken in database Etappe etappe = new Etappe(); etappe.Laps = laps; etappe.RondeId = RondeInfo.RondeId; etappe.LapAfstand = (float)(laps * 333.33); etappe.StartTijd = date; Etappe etappeResponse = await EtappeRepository.CreateEtappe(etappe); if (etappeResponse == null) { //Foutmelding await DisplayAlert("Foutmelding", "Er is iets foutgelopen bij het aanmaken van de etappe", "OK"); } else { //melding dat de ronde succesvol is aangemaakt await DisplayAlert("Succes", "Etappe is succesvol aangemaakt", "OK"); //Etappe aangemaakt doorgaan naar etappe pagina Navigation.PopAsync(); } } //anders niets doen }
public static async Task <Etappe> CreateEtappe(Etappe etappe) { string url = $"{_BASEURI}/etappes?code={_FUNCTIONKEY}"; using (HttpClient client = GetHttpClient()) { try { //Creeren van een json string json = JsonConvert.SerializeObject(etappe); //aanduiden dat het geen dat we willen doorsturen van het type application json moet zijn StringContent content = new StringContent(json, Encoding.UTF8, "application/json"); //request doen naar api var response = await client.PostAsync(url, content); //controleren of de put gelukt is if (!response.IsSuccessStatusCode) { Console.WriteLine($"Unsuccesful POST to url: {url}, object; {json}"); return(null); } else { //Extra check of de status code success is response.EnsureSuccessStatusCode(); //Bode van de response inlezen var responseBody = await response.Content.ReadAsStringAsync().ConfigureAwait(false); //Nieuw object ronde aanmaken met de data van de response Etappe etappeResponse = JsonConvert.DeserializeObject <Etappe>(Convert.ToString(responseBody)); //return object ronde met invite code etc return(etappeResponse); } } catch (Exception ex) { throw ex; } } }