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