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); }
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); } }
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)); } }
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); }
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; }