public static void RemoveContender(int sysid) { // first check if contender came from unplaced contemders, if so remove if (VisualUnplacedBracketsList.Any(x => x.SystemID == sysid) == true) { var cont = VisualUnplacedBracketsList.Where(x => x.SystemID == sysid).Select(c => c).Single(); // remove VisualUnplacedBracketsList.Remove(cont); return; } // the contender exist in one of the visual brackets bool isRemoved = false; // extract Current Bracket foreach (VisualBracket vb in VisualBracketsList) { foreach (VisualContender c in vb.VisualCont) { if (c.Contender.SystemID == sysid) { vb.VisualCont.Remove(c); isRemoved = true; break; } } if (isRemoved == true) { break; } } isRemoved = false; // extract Current Bracket foreach (VisualBracket vb in VisualBracketsList) { foreach (Contenders.Contender c in vb.Bracket.ContendersList) { if (c.SystemID == sysid) { vb.Bracket.ContendersList.Remove(c); isRemoved = true; // refresh bracket if (vb.Refresh() != null) { // the user moved the last contender from the bracket, bracket will be removed VisualBracketsList.Remove(vb.Refresh()); } break; } } if (isRemoved == true) { break; } } }
internal static void CreateNewBracket(int ContID) { // first check unplacedList to remove if (VisualUnplacedBracketsList.Any(x => x.SystemID == ContID) == true) { var cont = VisualUnplacedBracketsList.Where(x => x.SystemID == ContID).Select(c => c).Single(); // remove from unplaced area VisualUnplacedBracketsList.Remove(cont); } else { // remove from Bracket area RemoveContender(ContID); } // the old visual contender will be disposd in order to remove from GUI var NewBracketVisualContToDispose = AllVisualContenders.Where(x => x.SystemID == ContID).Select(c => c).Single(); // new visual contender will be created for the new bracket var NewBracketCont = AllVisualContenders.Where(x => x.SystemID == ContID).Select(c => c.Contender).Single(); // remove from AllvisualContenders list (will be created again later) AllVisualContenders.Remove(NewBracketVisualContToDispose); // dispose old visual contender and he will dissapear from his old place in GUI NewBracketVisualContToDispose.Vcontender.Dispose(); NewBracketVisualContToDispose = null; // create a new bracket MartialArts.Bracket newBracket = new MartialArts.Bracket(NewBracketCont.AgeCategory, NewBracketCont.Belt, NewBracketCont.WeightCategory); newBracket.AddSingleContender(NewBracketCont); // create a new visual bracket VisualBracket newVisualBracket = new VisualBracket(newBracket); newVisualBracket.Init(); // add to bracket list VisualBracketsList.Add(newVisualBracket); // add to panel FormObj.BracktsFPanel.Controls.Add(newVisualBracket.Vbracket); // add the"new" visual contender to AllContenderList (he was removed) in order to find him in searches AllVisualContenders.Add(newVisualBracket.VisualCont[0]); // scroll to end of the panel to show the user the new bracket, first wait for weak graphic cards System.Threading.Thread.Sleep(50); FormObj.BracktsFPanel.VerticalScroll.Value = FormObj.BracktsFPanel.VerticalScroll.Maximum; // refresh clocks FormObj.UpdateClocks(); }