void AdSortButton_TouchUpInside(object sender, EventArgs e) { if (!Settings.IsRegistered) { if (sender == Ad1NameButton || sender == Ad2NameButton || sender == Ad3NameButton || sender == Ad4NameButton) { HelperMethods.MakeModelRegistrationRequiredPrompt(this, sender as UIButton); } if (sender == Ad1BrokerButton || sender == Ad2BrokerButton || sender == Ad3BrokerButton || sender == Ad4BrokerButton) { HelperMethods.SellerRegistrationRequiredPrompt(this, sender as UIButton); } return; } Ad ad = new Ad(); bool isAdNameSort = false; if (sender == Ad1NameButton) { ad = DataObject.Ads[0]; isAdNameSort = true; } if (sender == Ad2NameButton) { ad = DataObject.Ads[1]; isAdNameSort = true; } if (sender == Ad3NameButton) { ad = DataObject.Ads[2]; isAdNameSort = true; } if (sender == Ad4NameButton) { ad = DataObject.Ads[3]; isAdNameSort = true; } if (sender == Ad1BrokerButton) { ad = DataObject.Ads[0]; isAdNameSort = false; } if (sender == Ad2BrokerButton) { ad = DataObject.Ads[1]; isAdNameSort = false; } if (sender == Ad3BrokerButton) { ad = DataObject.Ads[2]; isAdNameSort = false; } if (sender == Ad4BrokerButton) { ad = DataObject.Ads[3]; isAdNameSort = false; } LoadingOverlay loadingIndicator = new LoadingOverlay(this.View.Frame, isAdNameSort ? "Loading Aircraft by Selected Type" : "Loading Aircraft by Selected Broker"); this.View.AddSubview(loadingIndicator); var pageViewController = this.ParentViewController as UIPageViewController; var magFlipBoardViewController = pageViewController.ParentViewController as MagazineFlipBoardViewController; var modelController = magFlipBoardViewController.ModelController; List <Ad> adList = new List <Ad>(); Task.Run(async() => { adList = (await Ad.GetAdsByClassificationAsync(DataObject.SelectedClassification)).ToList(); //get ads with this name and move them to the from of the list List <Ad> similarAdList = new List <Ad>(); if (isAdNameSort) { similarAdList = adList.Where(row => row.Name == ad.Name).ToList(); } else { similarAdList = adList.Where(row => row.BrokerName == ad.BrokerName).ToList(); } for (int i = 0; i < similarAdList.Count(); i++) { adList.Remove(similarAdList[i]); adList.Insert(0, similarAdList[i]); } InvokeOnMainThread(() => { modelController.LoadModalController(adList, DataObject.SelectedClassification); loadingIndicator.Hide(); var startingViewController = modelController.GetViewController(0, false); var viewControllers = new UIViewController[] { startingViewController }; pageViewController.SetViewControllers(viewControllers, UIPageViewControllerNavigationDirection.Forward, true, null); HelperMethods.SendBasicAlert("", "Aircraft arranged by " + (isAdNameSort? ad.Name:ad.BrokerName)); }); }); }