示例#1
0
        public static CarList createListItem(Racer racer, int place, TimeInfo timeInfo)
        {
            CarList item = new CarList();

            item.place.Content = place;

            item.timeAverage.Text = String.Format("{0:0.000}", timeInfo.AverageTime) + "s";
            item.timeBest.Text    = String.Format("{0:0.000}", timeInfo.BestTime) + "s";

            if (timeInfo.HasAllLanesDone())
            {
                item.timeAverageHolder.Opacity = 1;
                item.timeBestHolder.Opacity    = 1;
            }

            if (!racer.PassedInspection)
            {
                item.disabled.Visibility = Visibility.Visible;
            }

            item.Lanes.Children.Clear();
            for (int i = 0; i < DataManager.Settings.NumberOfLanes; i++)
            {
                Label lane = new Label();
                lane.Content             = (i + 1).ToString();
                lane.HorizontalAlignment = HorizontalAlignment.Center;
                lane.VerticalAlignment   = VerticalAlignment.Center;
                lane.FontSize            = 30;

                if (timeInfo.LanesDone.Contains(i + 1))
                {
                    lane.IsEnabled  = false;
                    lane.FontWeight = FontWeights.UltraLight;
                    lane.Opacity    = 0.5;
                }

                item.Lanes.Children.Add(lane);
            }

            item.tbCarName.Text     = racer.Car.Name;
            item.tbCreatorName.Text = racer.Maker.Name;

            try
            {
                item.imgCarImage.Source = DataManager.loadImage(DataManager.getAbsoluteUri(racer.Car.ImageUri));
            }
            catch (Exception ex1)
            {
                DataManager.MessageProvider.showError("Could Not Load Car's Picture. Falling Back to defalt.", ex1.Message);
                try
                {
                    item.imgCarImage.Source = new BitmapImage(DataManager.getAbsoluteUri(DataManager.Settings.DefaltCarImageUri));
                }
                catch (Exception ex2)
                {
                    DataManager.MessageProvider.showError("Could Not Load Defalt Car's Picture.", ex2.Message);
                }
            }

            try
            {
                item.imgCreatorPicture.Source = DataManager.loadImage(DataManager.getAbsoluteUri(racer.Maker.ImageUri));
            }
            catch (Exception ex1)
            {
                DataManager.MessageProvider.showError("Could Not Load Creator's Picture. Falling Back to defalt.", ex1.Message);
                try
                {
                    item.imgCreatorPicture.Source = new BitmapImage(DataManager.getAbsoluteUri(DataManager.Settings.DefaltMakerImageUri));
                }
                catch (Exception ex2)
                {
                    DataManager.MessageProvider.showError("Could Not Load Defalt Creator's Picture", ex2.Message);
                }
            }

            return(item);
        }
示例#2
0
        private void createCarList(Panel host, List <Racer> racers)
        {
            //create sortable lists
            List <KeyValuePair <TimeInfo, Racer> > doneStandings = new List <KeyValuePair <TimeInfo, Racer> >();
            List <KeyValuePair <TimeInfo, Racer> > standings     = new List <KeyValuePair <TimeInfo, Racer> >();
            List <Racer> noDataStandings    = new List <Racer>();
            List <Racer> notPassedStandings = new List <Racer>();

            //put each racer into their list
            foreach (Racer racer in racers)
            {
                TimeInfo timeInfo = racer.getTimeInfo();

                if (!racer.PassedInspection)
                {
                    notPassedStandings.Add(racer);
                }
                else if (timeInfo != null)
                {
                    if (timeInfo.HasAllLanesDone())
                    {
                        doneStandings.Add(new KeyValuePair <TimeInfo, Racer>(timeInfo, racer));
                    }
                    else
                    {
                        standings.Add(new KeyValuePair <TimeInfo, Racer>(timeInfo, racer));
                    }
                }
                else
                {
                    noDataStandings.Add(racer);
                }
            }

            //sort each list
            Comparison <KeyValuePair <TimeInfo, Racer> > comparer = delegate(KeyValuePair <TimeInfo, Racer> firstPair, KeyValuePair <TimeInfo, Racer> nextPair)
            {
                return(firstPair.Key.AverageTime.CompareTo(nextPair.Key.AverageTime));
            };

            doneStandings.Sort(comparer);
            standings.Sort(comparer);

            //display results
            int i = 0;

            foreach (KeyValuePair <TimeInfo, Racer> racer in doneStandings)
            {
                i++;
                addCarListItem(host, racer.Value, i, racer.Key, i * 250);
            }
            foreach (KeyValuePair <TimeInfo, Racer> racer in standings)
            {
                i++;
                addCarListItem(host, racer.Value, i, racer.Key, i * 250);
            }
            foreach (Racer racer in noDataStandings)
            {
                i++;
                addCarListItem(host, racer, i * 250);
            }
            foreach (Racer racer in notPassedStandings)
            {
                i++;
                addCarListItem(host, racer, i * 250);
            }
        }
示例#3
0
        public void export()
        {
            Microsoft.Win32.SaveFileDialog dlg = new Microsoft.Win32.SaveFileDialog();
            dlg.FileName = Name;
            //dlg.DefaultExt = ".comp";
            //dlg.Filter = "Competition File (*.comp)|*.comp";
            dlg.DefaultExt = ".xlsx";
            dlg.Filter     = "Excel File (*.xlsx)|*.xlsx";

            Nullable <bool> result = dlg.ShowDialog();

            if (result == true)
            {
                string filename = dlg.FileName;

                ExcelPackage   export     = new ExcelPackage();
                ExcelWorksheet overviewWS = export.Workbook.Worksheets.Add("Overview");

                overviewWS.InsertColumn(1, 13);
                overviewWS.InsertRow(1, Racers.Count + 1);

                overviewWS.Cells[1, 1].Value = "Car's Name";
                overviewWS.Cells[1, 2].Value = "Creator's Name";
                overviewWS.Cells[1, 3].Value = "Class";
                overviewWS.Cells[1, 4].Value = "Barcode";
                overviewWS.Cells[1, 5].Value = "Inspection";
                overviewWS.Cells[1, 6].Value = "Best Time";
                overviewWS.Cells[1, 7].Value = "Average Time";

                for (int i = 1; i <= DataManager.Settings.NumberOfLanes; i++)
                {
                    overviewWS.Cells[1, i + 7].Value = "Lane #" + i.ToString();
                }

                for (int i = 0; i < Racers.Count; i++)
                {
                    overviewWS.Cells[i + 2, 1].Value = Racers[i].Car.Name;
                    overviewWS.Cells[i + 2, 2].Value = Racers[i].Maker.Name;
                    overviewWS.Cells[i + 2, 3].Value = Racers[i].Class;
                    overviewWS.Cells[i + 2, 4].Value = Racers[i].Barcode;
                    overviewWS.Cells[i + 2, 5].Value = Racers[i].PassedInspection ? "Yes" : "No";
                    TimeInfo info = Racers[i].getTimeInfo();
                    if (info != null)
                    {
                        overviewWS.Cells[i + 2, 6].Value = info.BestTime;
                        overviewWS.Cells[i + 2, 7].Value = info.AverageTime;
                    }
                    else
                    {
                        overviewWS.Cells[i + 2, 6].Value = "N/A";
                        overviewWS.Cells[i + 2, 7].Value = "N/A";
                    }

                    for (int l = 0; l < DataManager.Settings.NumberOfLanes; l++)
                    {
                        List <double> times = new List <double>();
                        foreach (Time time in Racers[i].Times)
                        {
                            if (time.Lane == l + 1)
                            {
                                times.Add(time.Speed);
                            }
                        }

                        if (times.Count > 0)
                        {
                            times.Sort();
                            overviewWS.Cells[i + 2, l + 8].Value = times[0];
                        }
                        else
                        {
                            overviewWS.Cells[i + 2, l + 8].Value = "N/A";
                        }
                    }
                }

                overviewWS.Cells[overviewWS.Dimension.Address].AutoFitColumns();

                export.SaveAs(new FileInfo(filename));
            }
        }
示例#4
0
 private void addCarListItem(Panel host, Racer racer, int place, TimeInfo timeInfo, int delay)
 {
     CarList listItem = CarList.createListItem(racer, place, timeInfo);
     listItem.MouseUp += delegate
     {
         RacerDetails.editOldRacer(HostGrid, racer, delegate ()
         {
             updateRacerList();
         }, delegate()
         {
             forgetRace();
         });
     };
     listItem.Margin = new Thickness(0, 0, 0, 8);
     listItem.AnimateIn(delay);
     host.Children.Add(listItem);
 }
示例#5
0
        public static CarList createListItem(Racer racer, int place, TimeInfo timeInfo)
        {
            CarList item = new CarList();
            
            item.place.Content = place;
            
            item.timeAverage.Text = String.Format("{0:0.000}", timeInfo.AverageTime) + "s";
            item.timeBest.Text = String.Format("{0:0.000}", timeInfo.BestTime) + "s";

            if (timeInfo.HasAllLanesDone())
            {
                item.timeAverageHolder.Opacity = 1;
                item.timeBestHolder.Opacity = 1;
            }

            if (!racer.PassedInspection)
            {
                item.disabled.Visibility = Visibility.Visible;
            }

            item.Lanes.Children.Clear();
            for (int i = 0; i < DataManager.Settings.NumberOfLanes; i++)
            {
                Label lane = new Label();
                lane.Content = (i + 1).ToString();
                lane.HorizontalAlignment = HorizontalAlignment.Center;
                lane.VerticalAlignment = VerticalAlignment.Center;
                lane.FontSize = 30;

                if (timeInfo.LanesDone.Contains(i + 1))
                {
                    lane.IsEnabled = false;
                    lane.FontWeight = FontWeights.UltraLight;
                    lane.Opacity = 0.5;
                }

                item.Lanes.Children.Add(lane);
            }

            item.tbCarName.Text = racer.Car.Name;
            item.tbCreatorName.Text = racer.Maker.Name;

            try
            {
                item.imgCarImage.Source = DataManager.loadImage(DataManager.getAbsoluteUri(racer.Car.ImageUri));
            }
            catch (Exception ex1)
            {
                DataManager.MessageProvider.showError("Could Not Load Car's Picture. Falling Back to defalt.", ex1.Message);
                try
                {
                    item.imgCarImage.Source = new BitmapImage(DataManager.getAbsoluteUri(DataManager.Settings.DefaltCarImageUri));
                }
                catch (Exception ex2)
                {
                    DataManager.MessageProvider.showError("Could Not Load Defalt Car's Picture.", ex2.Message);
                }
            }

            try
            {
                item.imgCreatorPicture.Source = DataManager.loadImage(DataManager.getAbsoluteUri(racer.Maker.ImageUri));
            }
            catch (Exception ex1)
            {
                DataManager.MessageProvider.showError("Could Not Load Creator's Picture. Falling Back to defalt.", ex1.Message);
                try
                {
                    item.imgCreatorPicture.Source = new BitmapImage(DataManager.getAbsoluteUri(DataManager.Settings.DefaltMakerImageUri));
                }
                catch (Exception ex2)
                {
                    DataManager.MessageProvider.showError("Could Not Load Defalt Creator's Picture", ex2.Message);
                }
            }

            return item;
        }