private void circuitChangedCallbackStatic(DependencyPropertyChangedEventArgs e) { if (circuit != null) { ObservableCollection <PilotDB> pilots = RacesDB.getPilots(circuit.Id); int numPilots = 0; if (pilots != null) { numPilots = pilots.Count; } txbRound.Text = circuit.Round.ToString(); txbDay.Text = circuit.CDate.ToString("dd", DateTimeFormatInfo.InvariantInfo); txbMonth.Text = circuit.CDate.ToString("MMM", DateTimeFormatInfo.InvariantInfo).ToUpper(); txbCircuitName.Text = circuit.CircuitName; txbDesc.Text = circuit.Description; if (numPilots == 1) { uiCardPilotRaces1.pilot = pilots[0]; } else if (numPilots == 2) { uiCardPilotRaces1.pilot = pilots[0]; uiCardPilotRaces2.pilot = pilots[1]; } else if (numPilots > 2) { uiCardPilotRaces1.pilot = pilots[0]; uiCardPilotRaces2.pilot = pilots[1]; uiCardPilotRaces3.pilot = pilots[2]; } } }
private void btnAddDriver_Click(object sender, RoutedEventArgs e) { if (lsvCircuits.SelectedItem != null) { int idCircuitSeleccionat = ((CircuitDB)lsvCircuits.SelectedItem).Id; int idPilotSelecciontat = ((PilotDB)gdvPilotsUnasignedTeam.SelectedItem).Id; DateTime DateRound = ((CircuitDB)lsvCircuits.SelectedItem).CDate; RacesDB rr; DateTime r_time_prim; DateTime r_time_altres = new DateTime(); String temps = ""; bool retired = false; if (RacesDB.getNumPilots(idCircuitSeleccionat) == 0) { r_time_prim = new DateTime(DateRound.Year, DateRound.Month, DateRound.Day, Int32.Parse(txtHoraPrimPilot.Text), Int32.Parse(txtMinPrimPilot.Text), Int32.Parse(txtSegPrimPilot.Text), Int32.Parse(txtMiliSegPrimPilot.Text)); temps = formatTemps(r_time_prim); } else { string timePrimer = RacesDB.getTempsPrimerPilot(idCircuitSeleccionat); r_time_altres = new DateTime(DateRound.Year, DateRound.Month, DateRound.Day, Int32.Parse(timePrimer.Substring(0, 2)), Int32.Parse(timePrimer.Substring(3, 2)), Int32.Parse(timePrimer.Substring(6, 2)), Int32.Parse(timePrimer.Substring(9, 3))); if (ckbRetiredPilot.IsChecked != true) { double addSeg = double.Parse(txtSegAltresPilots.Text); double addMiliseg = double.Parse(txtMiliSegAltresPilots.Text); r_time_altres = r_time_altres.AddMilliseconds((addSeg * 1000) + addMiliseg); temps = formatTemps(r_time_altres); } else { retired = true; temps = null; } } rr = new RacesDB(idPilotSelecciontat, idCircuitSeleccionat, temps, Int32.Parse(txtLaps.Text), getPuntuation(), retired); rr.AddPilotRoundRaces(); updateLists(); circuitSeleccionat = lsvCircuits.SelectedIndex; lsvCircuits.ItemsSource = CircuitDB.getCircuits(); ActiveDesactiveButtonAddDriver(); ActiveDesactiveButtonDeleteDriver(); ActiveButtonCloseRound(); } }
private void ActiveDesactiveButtonAddDriver() { if (RacesDB.getPilotsUnasigned(((CircuitDB)lsvCircuits.SelectedItem).Id).Count != 0) { btnAddDriver.IsEnabled = true; } else { btnAddDriver.IsEnabled = false; } }
private void ActiveButtonCloseRound() { if (!CircuitDB.getClosedRace(((CircuitDB)lsvCircuits.SelectedItem).Id) && RacesDB.getPilotsUnasigned(((CircuitDB)lsvCircuits.SelectedItem).Id).Count == 0) { btnCloseRound.IsEnabled = true; } else { btnCloseRound.IsEnabled = false; } }
private void updateLists() { //Aixo ho faig per no perdre l'index al actualitzar la llista if ((CircuitDB)lsvCircuits.SelectedItem == null) { lsvCircuits.SelectedIndex = circuitSeleccionat; } dtgRoundRaces.ItemsSource = RoundRacesDB.getRoundRaces(((CircuitDB)lsvCircuits.SelectedItem).Id); gdvPilotsUnasignedTeam.ItemsSource = RacesDB.getPilotsUnasigned(((CircuitDB)lsvCircuits.SelectedItem).Id); enableTemsPilot(); netejarFormulari(); }
private int getPosPilotRaces() { int idCircuitSeleccionat = ((CircuitDB)lsvCircuits.SelectedItem).Id; int pos = 0; if (RacesDB.getNumPilots(idCircuitSeleccionat) != 0) { pos = RacesDB.getNumPilots(idCircuitSeleccionat); } Debug.WriteLine(pos); pos = pos + 1; Debug.WriteLine(pos); return(pos); }
public void enableTemsPilot() { int numPilots = RacesDB.getPilots(((CircuitDB)lsvCircuits.SelectedItem).Id).Count; if (numPilots != 0) { skpTempsPrimPilot.Visibility = Visibility.Collapsed; grdTempsAltresPilots.Visibility = Visibility.Visible; } else { skpTempsPrimPilot.Visibility = Visibility.Visible; grdTempsAltresPilots.Visibility = Visibility.Collapsed; } }
private void deleteDriver_Click(object sender, RoutedEventArgs e) { if (dtgRoundRaces.SelectedItem != null && lsvCircuits.SelectedItem != null) { int idCircuitSeleccionat = ((CircuitDB)lsvCircuits.SelectedItem).Id; RoundRacesDB rr = (RoundRacesDB)dtgRoundRaces.SelectedItem; rr.deleteDriver(idCircuitSeleccionat, RacesDB.getIdPilot(idCircuitSeleccionat, rr.No)); updateLists(); circuitSeleccionat = lsvCircuits.SelectedIndex; lsvCircuits.ItemsSource = CircuitDB.getCircuits(); ActiveDesactiveButtonAddDriver(); ActiveDesactiveButtonDeleteDriver(); ActiveButtonCloseRound(); } }
private void btnCloseRound_Click(object sender, RoutedEventArgs e) { ObservableCollection <PilotDB> pilots = RacesDB.getPilots(((CircuitDB)lsvCircuits.SelectedItem).Id); for (int i = 0; i < pilots.Count; i++) { pilots[i].UpdatePoint(pilots[i].Id, RacesDB.getPuntsPilot(pilots[i].Id)); } ObservableCollection <TeamsDB> teams = RacesDB.getTeams(((CircuitDB)lsvCircuits.SelectedItem).Id); for (int i = 0; i < teams.Count; i++) { teams[i].UpdatePoint(teams[i].Id, RacesDB.getPuntsTeam(teams[i].Id)); } ((CircuitDB)lsvCircuits.SelectedItem).UpdateClosedRaces(); desactiveActiveCursaTancada(); }
private bool tempsAltresPilots() { bool segValid = false; bool miliSegValid = false; bool pilotRetired = false; bool lapsValid = false; int seg = -1; int miliSeg = -1; int laps = -1; try { if (txtSegPrimPilot.Text != null) { seg = Int32.Parse(txtSegAltresPilots.Text); } if (txtMiliSegPrimPilot.Text != null) { miliSeg = Int32.Parse(txtMiliSegAltresPilots.Text); } if (txtLaps.Text != null) { laps = Int32.Parse(txtLaps.Text); } } catch (Exception ex) { Debug.WriteLine(ex.Message); } if (seg >= 0 && seg < 60) { segValid = true; } if (miliSeg >= 0 && miliSeg < 1000) { miliSegValid = true; } if (ckbRetiredPilot.IsChecked != null && ckbRetiredPilot.IsChecked == true) { pilotRetired = true; } /* * Considero que com el primer jugador que posem es el primer, llavors els demes han de tenir les mateixes * voltes o inferior que el primer i que fiquem els resultats ordenadament, per tant, * el seguent Pilot que posem te les mateixes voltes o inferior que l'ultim pilot que hem entrat. */ if (laps <= RacesDB.getVoltesPrimer(((CircuitDB)lsvCircuits.SelectedItem).Id)) { if (laps <= RacesDB.getVoltesUltim(((CircuitDB)lsvCircuits.SelectedItem).Id)) { lapsValid = true; } } // TODO: FALTA VALIDAR QUE LES VOLTES SIGUIN CONSISTENTS AMB EL TEMPS // No se com fer-ho sense tenir el temps per cada volta en cada pilot. return(((segValid && miliSegValid && !pilotRetired) || (!segValid && !miliSegValid && pilotRetired)) && lapsValid); }