protected virtual void OnBtnLoadClicked(object sender, System.EventArgs e) { if (tour == null) { MiscHelpers.ShowMessage(this, "None selected.", MessageType.Error); return; } if (MiscHelpers.AskYesNo(this, "This will overwrite ALL data! Continue?") == ResponseType.Yes) { Tournament.I = tour; ShowRanking.I.UpdateAll(); MiscHelpers.ShowMessage(this, "Backup loaded successfully.", MessageType.Info); } }
protected virtual void OnBtnDebaterRemoveClicked(object sender, EventArgs e) { if (treeDebaters.Selection.CountSelectedRows() == 0) { return; } // display warning and hint if (Tournament.I.Rounds.Count > 0 && MiscHelpers.AskYesNo(this, "Deleting with existing rounds can lead to inconsistent data. " + "Better try renaming of existing debaters or swapping their roles. Continue anyway?") == ResponseType.No) { return; } else if (MiscHelpers.AskYesNo(this, "Do you really want to remove this entry?") == ResponseType.No) { return; } // delete the selected rows List <TreeIter> storeIters = new List <TreeIter>(); foreach (TreePath path in treeDebaters.Selection.GetSelectedRows()) { TreeIter iter; if (treeDebaters.Model.GetIter(out iter, path)) { TreeIter storeIter = ConvertModelIterToStoreIter(iter); storeIters.Add(storeIter); } } foreach (TreeIter iter in storeIters) { RemoveDebaterFromRounds(iter); TreeIter refIter = iter; store.Remove(ref refIter); } UpdateDebatersInfo(); SaveDebaters(); }
protected virtual void OnBtnImportCSVClicked(object sender, System.EventArgs e) { if (cbOverwrite.Active) { if (MiscHelpers.AskYesNo(this, "This clears all " + "entered Data for " + "overwritten Debaters. " + "Continue?") == ResponseType.No) { return; } } // make a backup before! Tournament.I.Save(); // start import List <Debater> debaters = Tournament.I.Debaters; int line = 0; try { CsvReader csv = new CsvReader(new StreamReader(labelFile.Text), cbHasHeaders.Active, ',', '"', '\\', '#', ValueTrimmingOptions.All); int dups = 0; int ok = 0; while (csv.ReadNextRecord()) { line++; EditableDebater d = new EditableDebater(); d.Name = new Name(csv[sbFirstName.ValueAsInt], csv[sbLastName.ValueAsInt]); // Club try { if (cbCity.Active) { d.Club = new Club(csv[sbClub.ValueAsInt], csv[sbCity.ValueAsInt]); } else { d.Club = new Club(csv[sbClub.ValueAsInt]); } } catch { d.Club = new Club("None"); d.BlackList.RemoveClub("None"); } // Age or from Birthday try { if (cbAge.Active) { d.Age = uint.Parse(csv [sbAge.ValueAsInt]); } if (cbBirthday.Active) { DateTime bday = DateTime.ParseExact(csv[sbBirthday.ValueAsInt], entryBdayFormat.Text, null); DateTime now = DateTime.Today; int age = now.Year - bday.Year; if (bday > now.AddYears(-age)) { age--; } d.Age = (uint)age; } } catch {} // Role if (cbRole.Active) { if (rbTeamMember.Active) { d.Role = OPDtabData.Role.Parse(csv [sbRole.ValueAsInt]); } else if (rbJudge.Active) { int judgeQuality = 0; try { judgeQuality = (int)uint.Parse(csv[sbRole.ValueAsInt]); } catch {} d.Role.JudgeQuality = judgeQuality; } } // ExtraInfo d.ExtraInfo = entryExtraInfoDefault.Text; if (cbExtraInfo.Active) { d.ExtraInfo = csv[sbExtraInfo.ValueAsInt] == "" ? entryExtraInfoDefault.Text : csv[sbExtraInfo.ValueAsInt]; } // BlackList if (cbBlackList.Active) { d.BlackList = DebaterPattern.Parse(csv[sbBlackList.ValueAsInt]); } // save it int i = debaters.FindLastIndex(delegate(Debater de) { return(de.Equals(d)); }); if (i < 0) { debaters.Add(new Debater(d)); ok++; } else { Console.WriteLine("Duplicate: " + d + ", " + debaters[i]); dups++; if (cbOverwrite.Active) { debaters[i] = new Debater(d); ok++; } } } string action = cbOverwrite.Active ? "overwritten" : "discarded"; MiscHelpers.ShowMessage(this, "Imported " + ok + ", " + action + " " + dups + " duplicates.", MessageType.Info); } catch (Exception ex) { MiscHelpers.ShowMessage(this, "Error encountered in line " + line.ToString() + ": " + ex.Message, MessageType.Error); } }