public TimeWatcher(DataManager newDataManager) { dataManager = newDataManager; timer = new Timer(); timer.Tick += new EventHandler(timeCheck); timer.Interval = 60 * 1000; timer.Enabled = true; }
public SMSManager(DataManager newDataManager) { dataManager = newDataManager; smsFetcher = new SMSFetcher(this); smsFetcher.addSmsInterceptorForPhoneNumber(""); smsParser = new SMSParser(this); smsList = new List<SMSMessageProcess>(); unparsableSmsList = new List<SMSMessageProcess>(); checkUnprocessedMessagesTimer = new Timer(); checkUnprocessedMessagesTimer.Interval = 5000; checkUnprocessedMessagesTimer.Tick += new EventHandler(checkUnprocessedMessagesTimer_Tick); checkUnprocessedMessagesTimer.Enabled = true; }
public MainForm() { InitializeComponent(); dataManager = new DataManager(); importExportForm = new ImportExportForm(dataManager); teamsForm = new TeamsForm(dataManager); puzzlesForm = new PuzzlesForm(dataManager); eventsForm = new EventsForm(dataManager); actualStateForm = new ActualStateForm(dataManager); int loadResult = dataManager.loadData(); switch (loadResult) { case -2: MessageBox.Show("Error while loading last state!"); break; } }
private void refreshTeamViews(DataManager dataManager) { this.refreshPointsListView(dataManager); this.refreshTimesListView(dataManager); this.refreshHintsListView(dataManager); this.refreshTimeLabels(dataManager); this.refreshPointLabels(dataManager); this.refreshDescTextBox(dataManager); }
private void refreshPointLabels(DataManager dataManager) { string pointsLabelText = "-"; string hintsLabelText = "-"; string standingsLabelText = "-"; if (this.selectedTeam != null) { pointsLabelText = String.Format("{0} b", this.dataManager.gameModel.getPointsForTeam(selectedTeam)); hintsLabelText = String.Format("{0} / {1}", this.dataManager.gameModel.getHintsTakenForTeam(selectedTeam), this.dataManager.gameModel.gameRules.maxHintsPerTeam); standingsLabelText = String.Format("{0} / {1}", this.dataManager.gameModel.getStandingsTakenForTeam(selectedTeam), this.dataManager.gameModel.gameRules.maxStandingsPerTeam); } this.pointsLabel.Text = pointsLabelText; this.hintsLabel.Text = hintsLabelText; this.standingsLabel.Text = standingsLabelText; }
private void refreshTeamsCombobox(DataManager dataManager) { if (this.teamsComboBox.Items.Count == dataManager.gameModel.teams.Count) return; teamsComboBox.BeginUpdate(); int newSelectedIndex = 0; HOHTeam previouslySelected = null; if (this.teamsComboBox.SelectedIndex >= 0 && this.teamsComboBox.SelectedIndex < this.teamsComboBoxBinding.Count) previouslySelected = this.teamsComboBoxBinding[this.teamsComboBox.SelectedIndex]; this.teamsComboBox.Items.Clear(); this.teamsComboBoxBinding.Clear(); if (dataManager.gameModel.teams != null) { foreach (HOHTeam team in dataManager.gameModel.teams) { this.teamsComboBox.Items.Add(team.name); this.teamsComboBoxBinding.Add(team); if (team == previouslySelected) newSelectedIndex = this.teamsComboBox.Items.Count - 1; } if (this.teamsComboBox.Items.Count > newSelectedIndex) this.teamsComboBox.SelectedIndex = newSelectedIndex; } teamsComboBox.EndUpdate(); }
public ImportExportForm(DataManager newDataManager) : this() { dataManager = newDataManager; }
private void refreshPointsListView(DataManager dataManager) { if (selectedPuzzle == null) return; this.pointsListView.BeginUpdate(); List<HOHTeam> alreadyCounted = new List<HOHTeam>(); pointsListView.Items.Clear(); int i = 0; foreach (HOHEvent oneEvent in selectedPuzzle.events) { if (oneEvent.eventType == HOHEvent.HOHEventType.SolutionEventType && !alreadyCounted.Contains(oneEvent.team)) { alreadyCounted.Add(oneEvent.team); ListViewItem newLine = new ListViewItem(); if (oneEvent.hasCorrectSolution()) { i++; newLine.Text = i.ToString(); } else { newLine.Text = "x"; } newLine.SubItems.Add(oneEvent.team.name); newLine.SubItems.Add(oneEvent.solutionText); newLine.SubItems.Add(this.dataManager.gameModel.getPointsForTeamAtPuzzle(oneEvent.team, selectedPuzzle).ToString()); pointsListView.Items.Add(newLine); } } this.pointsListView.EndUpdate(); }
public TeamsForm(DataManager newDataManager) : this() { dataManager = newDataManager; this.refreshAllViews(dataManager); }
private void refreshDescTextBox(DataManager dataManager) { string descTextBoxText = ""; if (this.selectedTeam != null) descTextBoxText = this.selectedTeam.description; this.descTextBox.Text = descTextBoxText; }
private void refreshAllViews(DataManager dataManager) { refreshEventsView(dataManager); refreshProblemsView(dataManager); refreshGameRulesTextBox(dataManager); }
private void refreshEventsView(DataManager dataManager) { eventsListView.BeginUpdate(); eventsListView.Items.Clear(); foreach (HOHEvent oneEvent in this.dataManager.gameModel.events) { ListViewItem eventListViewItem = new ListViewItem(); switch (oneEvent.eventType) { case HOHEvent.HOHEventType.SolutionEventType: eventListViewItem.Text = oneEvent.dateTime.ToString(); if (oneEvent.solutionText.CompareTo(oneEvent.puzzle.solution) == 0) { eventListViewItem.SubItems.Add(String.Format("Spravna odpoved na sifru {0} ({1}) od tymu {2}.", oneEvent.puzzle.name, oneEvent.solutionText, oneEvent.team.name)); } else { eventListViewItem.SubItems.Add(String.Format("Spatna odpoved na sifru {0} ({1}, ma byt {2}) od tymu {3}.", oneEvent.puzzle.name, oneEvent.solutionText, oneEvent.puzzle.solution, oneEvent.team.name)); } eventListViewItem.SubItems.Add(oneEvent.SMSText); break; case HOHEvent.HOHEventType.HintRequestEventType: eventListViewItem.Text = oneEvent.dateTime.ToString(); eventListViewItem.SubItems.Add(String.Format("Zadost o napovedu na sifru {0} od tymu {1}.", oneEvent.puzzle.name, oneEvent.team.name)); eventListViewItem.SubItems.Add(oneEvent.SMSText); break; case HOHEvent.HOHEventType.HintReplyEventType: eventListViewItem.Text = oneEvent.dateTime.ToString(); eventListViewItem.SubItems.Add(String.Format("Odeslana napoveda k sifre {0} tymu {1} na cislo {2}.", oneEvent.puzzle.name, oneEvent.team.name, oneEvent.phoneNumber)); eventListViewItem.SubItems.Add(oneEvent.SMSText); break; case HOHEvent.HOHEventType.StandigsRequestType: eventListViewItem.Text = oneEvent.dateTime.ToString(); eventListViewItem.SubItems.Add(String.Format("Zadost o poradi od tymu {0}.", oneEvent.team.name)); eventListViewItem.SubItems.Add(oneEvent.SMSText); break; case HOHEvent.HOHEventType.StandingsReplyEventType: eventListViewItem.Text = oneEvent.dateTime.ToString(); eventListViewItem.SubItems.Add(String.Format("Odeslano info o poradi tymu {0} na cislo {1}.", oneEvent.team.name, oneEvent.phoneNumber)); eventListViewItem.SubItems.Add(oneEvent.SMSText); break; case HOHEvent.HOHEventType.GivingUpEventType: eventListViewItem.Text = oneEvent.dateTime.ToString(); eventListViewItem.SubItems.Add(String.Format("Tym {0} vzdal hru.", oneEvent.team.name)); eventListViewItem.SubItems.Add(oneEvent.SMSText); break; case HOHEvent.HOHEventType.SendFailedEventType: eventListViewItem.Text = oneEvent.dateTime.ToString(); eventListViewItem.SubItems.Add(String.Format("Nepodarilo se odeslat SMS tymu {0} na cislo {1}.", oneEvent.team.name, oneEvent.phoneNumber)); eventListViewItem.SubItems.Add(oneEvent.SMSText); break; } eventsListView.Items.Add(eventListViewItem); } eventsListView.EndUpdate(); }
private int nextProblemIndex(DataManager dataManager, int newSelectedProblemIndex) { newSelectedProblemIndex++; if (newSelectedProblemIndex > dataManager.smsManager.unparsableSmsList.Count - 1) newSelectedProblemIndex = dataManager.smsManager.unparsableSmsList.Count - 1; return newSelectedProblemIndex; }
private int previousProblemIndex(DataManager dataManager, int newSelectedProblemIndex) { if (newSelectedProblemIndex > 0) newSelectedProblemIndex--; if (newSelectedProblemIndex > dataManager.smsManager.unparsableSmsList.Count) newSelectedProblemIndex = dataManager.smsManager.unparsableSmsList.Count - 1; return newSelectedProblemIndex; }
private void refreshTimesListView(DataManager dataManager) { if (selectedPuzzle == null) return; this.timesListView.BeginUpdate(); List<HOHTeam> alreadyCounted = new List<HOHTeam>(); timesListView.Items.Clear(); int i = 0; foreach (HOHEvent oneEvent in selectedPuzzle.events) { if (oneEvent.eventType == HOHEvent.HOHEventType.SolutionEventType && !alreadyCounted.Contains(oneEvent.team)) { alreadyCounted.Add(oneEvent.team); i++; ListViewItem newLine = new ListViewItem(); newLine.Text = i.ToString(); newLine.SubItems.Add(oneEvent.team.name); newLine.SubItems.Add("-"); newLine.SubItems.Add(oneEvent.dateTime.ToString()); newLine.SubItems.Add("-"); timesListView.Items.Add(newLine); } } this.timesListView.EndUpdate(); }
private void refreshPuzzlesViews(DataManager dataManager) { this.refreshPointsListView(dataManager); this.refreshTimesListView(dataManager); this.refreshHintsListView(dataManager); this.refreshDescTextBox(dataManager); }
private void refreshPuzzlesCombobox(DataManager dataManager) { if (this.puzzlesComboBox.Items.Count == dataManager.gameModel.puzzles.Count) return; this.puzzlesComboBox.BeginUpdate(); int newSelectedIndex = 0; HOHPuzzle previouslySelected = null; if (this.puzzlesComboBox.SelectedIndex >= 0 && this.puzzlesComboBox.SelectedIndex < this.puzzlesComboBoxBinding.Count) previouslySelected = this.puzzlesComboBoxBinding[this.puzzlesComboBox.SelectedIndex]; this.puzzlesComboBox.Items.Clear(); this.puzzlesComboBoxBinding.Clear(); if (dataManager.gameModel.puzzles != null) { foreach (HOHPuzzle puzzle in dataManager.gameModel.puzzles) { this.puzzlesComboBox.Items.Add(puzzle.name); this.puzzlesComboBoxBinding.Add(puzzle); if (puzzle == previouslySelected) newSelectedIndex = this.puzzlesComboBox.Items.Count - 1; } if (this.puzzlesComboBox.Items.Count > newSelectedIndex) this.puzzlesComboBox.SelectedIndex = newSelectedIndex; } this.puzzlesComboBox.EndUpdate(); }
private void refreshTimeLabels(DataManager dataManager) { string startTimeLabelText = "-"; string timeToFinishLabelText = "-"; string finishedTimeLabelText = "-"; string giveUpTimeLabelText = "-"; if (this.selectedTeam != null) { if (this.selectedTeam.hasStarted) { startTimeLabelText = String.Format("{0}", this.selectedTeam.startTime); timeToFinishLabelText = String.Format("{0}", this.dataManager.gameModel.getTimeToFinishForTeam(selectedTeam)); } if (this.selectedTeam.hasFinished) finishedTimeLabelText = String.Format("{0}", this.selectedTeam.finishTime); if (this.selectedTeam.hasGivenUp) giveUpTimeLabelText = String.Format("{0}", this.selectedTeam.giveUpTime); this.finishedTimeLabel.Visible = this.selectedTeam.hasFinished; this.giveUpTimeLabel.Visible = this.selectedTeam.hasGivenUp; this.label3.Visible = this.selectedTeam.hasFinished; this.label4.Visible = this.selectedTeam.hasGivenUp; } this.startTimeLabel.Text = startTimeLabelText; this.timeToFinishLabel.Text = timeToFinishLabelText; this.finishedTimeLabel.Text = finishedTimeLabelText; this.giveUpTimeLabel.Text = giveUpTimeLabelText; }
private void refreshGameRulesTextBox(DataManager dataManager) { string gameRulesTextBoxText = ""; gameRulesTextBoxText = dataManager.gameModel.gameRules.description; this.gameRulesTextBox.Text = gameRulesTextBoxText; }
private void refreshTimesListView(DataManager dataManager) { if (selectedTeam == null) return; List<HOHPuzzle> alreadyCounted = new List<HOHPuzzle>(); timesListView.BeginUpdate(); timesListView.Items.Clear(); int i = 0; foreach (HOHEvent oneEvent in selectedTeam.events) { if ((oneEvent.eventType == HOHEvent.HOHEventType.SolutionEventType) && !alreadyCounted.Contains(oneEvent.puzzle)) { alreadyCounted.Add(oneEvent.puzzle); if (oneEvent.hasCorrectSolution()) i++; ListViewItem newLine = new ListViewItem(); newLine.Text = i.ToString(); newLine.SubItems.Add(oneEvent.puzzle.name); newLine.SubItems.Add(dataManager.gameModel.getPlaceForTeamAtPuzzle(selectedTeam, oneEvent.puzzle).ToString()); newLine.SubItems.Add("-"); newLine.SubItems.Add(oneEvent.dateTime.ToString()); newLine.SubItems.Add("-"); timesListView.Items.Add(newLine); } } timesListView.EndUpdate(); }
public ActualStateForm(DataManager newDataManager) : this() { dataManager = newDataManager; }
private void refreshAllViews(DataManager dataManager) { this.refreshTeamsCombobox(dataManager); this.refreshTeamViews(dataManager); }
private void refreshProblemsView(DataManager dataManager) { if (selectedProblemIndex < 0 && dataManager.smsManager.unparsableSmsList.Count > 0) selectedProblemIndex = dataManager.smsManager.unparsableSmsList.Count - 1; if (selectedProblemIndex > dataManager.smsManager.unparsableSmsList.Count -1 ) selectedProblemIndex = dataManager.smsManager.unparsableSmsList.Count - 1; if (selectedProblemIndex >= 0) { SMSMessageProcess problemSMS = dataManager.smsManager.unparsableSmsList[selectedProblemIndex]; //if (problemSMS.correctedBody.CompareTo("") != 0) // smsTextTextBox.Text = problemSMS.correctedBody; //else // smsTextTextBox.Text = problemSMS.smsMessage.Body; smsTextTextBox.Text = problemSMS.getMessageBody(); smsTextTextBox.ReadOnly = false; if (problemSMS.getRecipientPhoneNumber().CompareTo("<>") == 0) errorDescriptionLabel.Text = String.Format(errorDescriptionFormat, "<testovací>", problemSMS.getReceivedDate()); else errorDescriptionLabel.Text = String.Format(errorDescriptionFormat, problemSMS.getRecipientPhoneNumber(), problemSMS.getReceivedDate()); titleLabel.Text = String.Format(titleLabelTextFormat, (selectedProblemIndex + 1).ToString(), dataManager.smsManager.unparsableSmsList.Count); } else { smsTextTextBox.Text = ""; smsTextTextBox.ReadOnly = true; errorDescriptionLabel.Text = ""; titleLabel.Text = titleLabelTextNoProblems; } refreshProblemsButtonsState(dataManager); }
private void refreshHintsListView(DataManager dataManager) { if (selectedTeam == null) return; hintsListView.BeginUpdate(); hintsListView.Items.Clear(); int i = 0; foreach (HOHEvent oneEvent in selectedTeam.events){ if (oneEvent.eventType == HOHEvent.HOHEventType.HintReplyEventType) { i++; ListViewItem newLine = new ListViewItem(); newLine.Text = i.ToString(); newLine.SubItems.Add(oneEvent.puzzle.name); newLine.SubItems.Add(oneEvent.dateTime.ToString()); hintsListView.Items.Add(newLine); } } hintsListView.EndUpdate(); }
private void refreshActualStateList(DataManager dataManager) { this.actualStateList.BeginUpdate(); actualStateList.Items.Clear(); int i = 0; foreach (HOHTeam team in dataManager.gameModel.getTeamPlacesList()) { i++; ListViewItem actualListViewItem = new ListViewItem(); decimal points = dataManager.gameModel.getPointsForTeam(team); string pointsString = points.ToString(); if (points < -(dataManager.gameModel.gameRules.pointPenaltyForTimeout / 2)) { pointsString = "DNF"; } actualListViewItem.Text = i.ToString(); actualListViewItem.SubItems.Add(team.name); actualListViewItem.SubItems.Add(dataManager.gameModel.getPuzzlesTakenForTeam(team).ToString()); actualListViewItem.SubItems.Add(dataManager.gameModel.getHintsTakenForTeam(team).ToString()); actualListViewItem.SubItems.Add(pointsString); actualStateList.Items.Add(actualListViewItem); } this.actualStateList.EndUpdate(); }
private void refreshProblemsButtonsState(DataManager dataManager) { previousProblembutton.Enabled = (!(selectedProblemIndex == previousProblemIndex(dataManager, selectedProblemIndex))); nextProblemButton.Enabled = (!(selectedProblemIndex == nextProblemIndex(dataManager, selectedProblemIndex))); problemCorrectedButton.Enabled = (selectedProblemIndex != -1); }
private void refreshAllViews(DataManager dataManager) { this.refreshPuzzlesCombobox(dataManager); this.refreshPuzzlesViews(dataManager); }