コード例 #1
0
        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];
                }
            }
        }
コード例 #2
0
        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();
            }
        }
コード例 #3
0
 private void ActiveDesactiveButtonAddDriver()
 {
     if (RacesDB.getPilotsUnasigned(((CircuitDB)lsvCircuits.SelectedItem).Id).Count != 0)
     {
         btnAddDriver.IsEnabled = true;
     }
     else
     {
         btnAddDriver.IsEnabled = false;
     }
 }
コード例 #4
0
 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;
     }
 }
コード例 #5
0
        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();
        }
コード例 #6
0
        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);
        }
コード例 #7
0
        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;
            }
        }
コード例 #8
0
        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();
            }
        }
コード例 #9
0
        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();
        }
コード例 #10
0
        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);
        }