public async void addEvent(object sender, EventArgs e) { if (entryName.Text == null) { await this.DisplayAlert("Error", "Event name cannot be empty.", "Ok"); return; } //remove white space on ends while (entryName.Text.Length > 0 && entryName.Text[0] == ' ') { entryName.Text = entryName.Text.Substring(1); } while (entryName.Text.Length > 0 && entryName.Text[entryName.Text.Length - 1] == ' ') { entryName.Text = entryName.Text.Substring(0, entryName.Text.Length - 1); } if (entryName.Text.Length == 0) { await this.DisplayAlert("Error", "Event name cannot be empty.", "Ok"); return; } for (int i = 0; i < GlobalVariables.myEvents.Count; i++) { if (string.Compare(GlobalVariables.myEvents[i].getName(), entryName.Text, true) == 0) { await this.DisplayAlert("Error", "An event with that name already exists.", "Ok"); return; } } for (int i = 0; i < GlobalVariables.storedEvents.Count; i++) { if (string.Compare(GlobalVariables.storedEvents[i].getName(), entryName.Text, true) == 0) { await this.DisplayAlert("Error", "An event with that name already exists.", "Ok"); return; } } displayActivityIndicator(); await Task.Run(() => { DateTime eventDate = new DateTime(datePicked.Date.Year, datePicked.Date.Month, datePicked.Date.Day, timePicked.Time.Hours, timePicked.Time.Minutes, 0); Event newEvent = new Event(entryName.Text, eventDate); newEvent.setAllDayEvent(allDayEvent); newEvent.setOneTimeEvent(oneTimeEvent); GlobalVariables.resetEvent(newEvent); GlobalVariables.myEvents.Add(newEvent); //save event to file FileHandler fileHandler = new FileHandler(); fileHandler.appendEventToFile(newEvent); Device.BeginInvokeOnMainThread(() => { mainPage.refreshGrid(); mainPage.populateGrid(); Navigation.PopModalAsync(); }); }); }