async void OnSearchBookmarkTapped(object sender, EventArgs eventArgs) { //check if user is logged in if (userSession.userLoginCookie == "") { await DisplayAlert("Login required", "Please login first to saved your custom search", "OK"); } else { //if none of the fields are edited, output error if (String.IsNullOrEmpty(tenderReferenceInput.Text) && String.IsNullOrEmpty(tenderTitleInput.Text) && selectedSource == "" && closingdatefrom == "" && closingdateto == "") { await DisplayAlert("Error", "Please enter at least one search field", "Okay"); } else { string identifier = await InputBox(this.Navigation); //Generate random number for Custom Search ID Random rand1 = new Random(); string randomnumber = ""; for (int i = 0; i < 7; i++) { randomnumber = rand1.Next().ToString(); } string tenderReference = tenderReferenceInput.Text; string tenderTitle = tenderTitleInput.Text; string originatingSource = selectedSource; string closingDateFrom = closingdatefrom; string closingDateTo = closingdateto; DisplayAlert("Add bookmark", "Search preferences added and can be viewed at the Custom Searches page", "OK"); string postbookmarkhttptask = await Task.Run <string>(() => HttpRequestHandler.PostManageSearchBookmark(randomnumber, tenderReference, tenderTitle, originatingSource, closingDateFrom, closingDateTo, userSession.username, identifier, "add")); var postbookmarkhttpresult = postbookmarkhttptask.ToString(); Console.WriteLine(postbookmarkhttpresult); int count = 0; while (count < 3 && postbookmarkhttpresult != "Success") { Console.WriteLine("Looping for failure add"); postbookmarkhttptask = await Task.Run <string>(() => HttpRequestHandler.PostManageSearchBookmark(randomnumber, tenderReference, tenderTitle, originatingSource, closingDateFrom, closingDateTo, userSession.username, identifier, "add")); postbookmarkhttpresult = postbookmarkhttptask.ToString(); count++; } } } }
async void onDeleteTapped(object sender, EventArgs args) { var customSearchesSelected = ((TappedEventArgs)args).Parameter; customSearchesItem customSearches = (customSearchesItem)customSearchesSelected; List <customSearchesItem> tempcustomSearches = (List <customSearchesItem>)listView.ItemsSource; var answer = await DisplayAlert("Remove Favourite Search", "Are you sure you want to remove favourite search '" + customSearches.identifier + "'?", "YES", "NO"); if (answer) { //remove bookmark from listview foreach (var searchesItem in tempcustomSearches.ToList()) { if (searchesItem == customSearches) { int index = tempcustomSearches.IndexOf(searchesItem); tempcustomSearches.Remove(searchesItem); } } //Refresh listview listView.ItemsSource = tempcustomSearches.ToList(); //Display error message when there are no bookmark if (tempcustomSearches.Count <= 0) { errorMsg.Text = "No favourite searches found."; errorMsg.IsVisible = true; upBtn.IsVisible = false; } //Remove bookmark from database string httpTask = await Task.Run <string>(() => HttpRequestHandler.PostManageSearchBookmark(customSearches.searchID, customSearches.tenderReference, customSearches.tenderTitle, customSearches.originatingSource, customSearches.closingDateFrom, customSearches.closingDateTo, userSession.username, customSearches.identifier, "delete")); Console.WriteLine(customSearches.identifier); var httpResult = httpTask.ToString(); Console.WriteLine(httpResult); int count = 0; while (count < 3 && httpResult != "Success") { Console.WriteLine("Looping for failure delete"); httpTask = await Task.Run <string>(() => HttpRequestHandler.PostManageSearchBookmark(customSearches.searchID, customSearches.tenderReference, customSearches.tenderTitle, customSearches.originatingSource, customSearches.closingDateFrom, customSearches.closingDateTo, userSession.username, customSearches.identifier, "delete")); httpResult = httpTask.ToString(); count++; } } }