async void Button_AddNewTravel(object sender, EventArgs e) { await Navigation.PushAsync(new AddTravelData(LicensePlateNumber)); MessagingCenter.Subscribe <AddTravelData, Travel>(this, "DatabaseOperationSucceeded", (_sender, travel) => { TravelList.Add(travel); TravelList = SortListByTravelDateDesc(TravelList); Travels.ItemsSource = TravelList; MessagingCenter.Unsubscribe <AddTravelData, Travel>(this, "DatabaseOperationSucceeded"); }); }
internal async void CreateTravel() { ErrorMessage = ""; if (NewTravelName == "") { ErrorMessage = "Travel's name can't be empty"; } else if (NewTravelsStartDate.Date == null || NewTravelsEndDate.Date == null) { ErrorMessage = "Please select a start date and an end date"; } else if (NameOfTravelIsInUse()) { ErrorMessage = "That travel name is already in use"; } else if (NewTravelsStartDate.Date > NewTravelsEndDate.Date) { ErrorMessage = "Start date can't be greater than end date"; } else { Travel newTravel = new Travel() { Name = NewTravelName, Start = NewTravelsStartDate.Date, End = NewTravelsEndDate.Date }; var values = new Dictionary <string, string> { { "Name", NewTravelName }, { "Start", NewTravelsStartDate.Date.ToString() }, { "End", NewTravelsEndDate.Date.ToString() } }; var content = new FormUrlEncodedContent(values); var result = await Client.HttpClient.PostAsync("http://localhost:65177/api/Travel", content); if (result.StatusCode == HttpStatusCode.OK) { TravelList.Add(newTravel); } } }