protected async override void OnAppearing() { base.OnAppearing(); searchAppointments = await InspectionLogTools.SearchAppointments("", currentUser); SearchListView.ItemsSource = searchAppointments; if (searchAppointments.Count > 0) { SaveReportBtn.IsVisible = true; } else { SaveReportBtn.IsVisible = false; } }
private async void searchBar_SearchButtonPressed(object sender, EventArgs e) { string search = searchBar.Text; searchAppointments = await InspectionLogTools.SearchAppointments(search, currentUser); SearchListView.ItemsSource = searchAppointments; if (searchAppointments.Count > 0) { SaveReportBtn.IsVisible = true; } else { SaveReportBtn.IsVisible = false; } }
private async void SaveReportBtn_Clicked(object sender, EventArgs e) { Report report = new Report(); report.InspectorID = currentUser.ID; var fileName = await DisplayPromptAsync("Name File", "Name this inspection report file.", "Save", "Cancel", "Report Name", 12, Keyboard.Default); fileName += ".txt"; var filePath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Personal), fileName); string text = null; foreach (var s in searchAppointments) { int index = s.IndexOf(" "); string idStr = s.Substring(1, index - 1); var appointment = await App.Database.GetAppointmentAsync(Convert.ToInt32(idStr.Trim())); text += await InspectionLogTools.BuildReport(appointment); } string creater = "Report created by " + currentUser.Name + "\n" + "________________________" + "\n\n"; text = creater + text; if (!File.Exists(filePath) && !filePath.Contains(" ")) { File.WriteAllText(filePath, text); report.FilePath = filePath; report.TimeStamp = File.GetLastWriteTime(filePath); report.FileName = fileName; await App.Database.SaveReportAsync(report); await DisplayAlert("Saved", "Report has been saved.", "OK"); } else { if (File.Exists(filePath)) { await DisplayAlert("Conflict", "A file already exist by that name.", "OK"); } else if (filePath.Contains(" ")) { await DisplayAlert("Naming Error", "File name cannot contain spaces.", "OK"); } } }
private async void SearchReports_SearchButtonPressed(object sender, EventArgs e) { ReportListView.ItemsSource = await InspectionLogTools.SearchReports(SearchReports.Text, reportsDisplay); }