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