public AddOrEditPerformerView(string selectedPerformerName, int perfIndex) { InitializeComponent(); index = perfIndex; pckInAir.ItemsSource = InfoStore.statusOptions; selected = InfoStore.getPerformerByName(selectedPerformerName); txtDesc.Text = selected.Description; txtImage.Text = (selected.Image == "")? "https://i.imgur.com/mXv4hUL.png" : selected.Image; txtName.Text = selected.Name; txtSchedule.Text = selected.OrderNumber.ToString(); pckInAir.SelectedItem = selected.InAir; }
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(); }