Esempio n. 1
0
 public pgEditPerformers()
 {
     InitializeComponent();
     btnBack = (Button)myStackLayout.Children[2];
     foreach (string name in InfoStore.getPerformerNames())
     {
         pckPerformers.Items.Add(name);
     }
     pckPerformers.Items.Add("Add New Performer");
     if (Device.RuntimePlatform == Device.Android)
     {
         backButton.IsVisible = false;
     }
 }
        private void OrderPerformers()
        {
            Performer changed     = InfoStore.getPerformerByName(selected.Name);
            bool      newisHigher = (Convert.ToInt16(changed.OrderNumber) < Convert.ToInt16(txtSchedule.Text.Trim()));

            changed.OrderNumber = txtSchedule.Text.Trim();
            changed.Name        = txtName.Text.Trim();
            changed.Description = txtName.Text.Trim();
            changed.Image       = txtImage.Text.Trim();
            changed.InAir       = pckInAir.SelectedItem.ToString();

            if (index >= InfoStore.getPerformerNames().Count)
            {
                Database.Airshows[aSIndex].Performers.Add(changed);
            }
            else
            {
                Database.Airshows[aSIndex].Performers[index] = changed;
            }

            Database.Airshows[aSIndex].Performers = Database.Airshows[aSIndex].Performers.OrderBy(x => x.OrderNumber).ToList();


            if (!newisHigher)
            {
                for (int i = 1; i <= Database.Airshows[aSIndex].Performers.Count; i++)
                {
                    if (Convert.ToInt16(changed.OrderNumber) == Database.Airshows[aSIndex].Performers.Count && Database.Airshows[aSIndex].Performers[Database.Airshows[aSIndex].Performers.Count - 1] != changed)
                    {
                        Database.Airshows[aSIndex].Performers[Database.Airshows[aSIndex].Performers.Count - 2]             = Database.Airshows[aSIndex].Performers[Database.Airshows[aSIndex].Performers.Count - 1];
                        Database.Airshows[aSIndex].Performers[Database.Airshows[aSIndex].Performers.Count - 2].OrderNumber = Convert.ToString(Database.Airshows[aSIndex].Performers.Count - 1);
                        Database.Airshows[aSIndex].Performers[Database.Airshows[aSIndex].Performers.Count - 1]             = changed;
                    }
                    else if (!(changed.OrderNumber == Database.Airshows[aSIndex].Performers[i - 1].OrderNumber))
                    {
                        Database.Airshows[aSIndex].Performers[i - 1].OrderNumber = Convert.ToString(i);
                    }
                    else if (Database.Airshows[aSIndex].Performers[i - 1] == changed)
                    {
                        Database.Airshows[aSIndex].Performers[i - 1].OrderNumber = changed.OrderNumber;
                    }
                    else
                    {
                        Database.Airshows[aSIndex].Performers[i - 1].OrderNumber = Convert.ToString(++i);
                    }
                }
            }
            else
            {
                for (int i = 1; i <= Database.Airshows[aSIndex].Performers.Count; i++)
                {
                    if (!(changed.OrderNumber == Database.Airshows[aSIndex].Performers[i - 1].OrderNumber))
                    {
                        Database.Airshows[aSIndex].Performers[i - 1].OrderNumber = Convert.ToString(i);
                    }
                    else if (Database.Airshows[aSIndex].Performers[i - 1].Name == changed.Name)
                    {
                        Database.Airshows[aSIndex].Performers[i - 1].OrderNumber = changed.OrderNumber;
                    }
                    else
                    {
                        Database.Airshows[aSIndex].Performers[i - 1].OrderNumber = Convert.ToString(i - 1);
                    }
                }
            }
            Database.Airshows[aSIndex].Performers = Database.Airshows[aSIndex].Performers.OrderBy(x => x.OrderNumber).ToList();
        }