public TyrePlacementViewModel(TyrePlacement placement)
 {
     TyrePlacementTitle = placement;
     Average            = new ValueStateViewModel("Average", this);
     Mode  = new ValueStateViewModel("Mode", this);
     Range = new ValueStateViewModel("Range", this);
     Axle  = placement.GetAxleByTyrePlacement();
 }
Example #2
0
 public TyreChangedEvent(Guid aggId, int expectedVersion, Tyre newTyre, TyrePlacement placement)
 {
     this.AggregateId     = aggId;
     this.EventId         = Guid.NewGuid();
     this.EventType       = EventTypes.TyreChanged.ToString();
     this.ExpectedVersion = expectedVersion;
     this.Tyre            = newTyre;
     this.Placement       = placement;
 }
Example #3
0
        public static Axle GetAxleByTyrePlacement(this TyrePlacement tyrePlacement)
        {
            var attributes = tyrePlacement.GetAttributeValues <AxleAttribute>(typeof(TyrePlacement));

            if (attributes.Length > 0)
            {
                return(attributes[0].Axle);
            }
            throw new Exception($"TyrePlacement {tyrePlacement} has not been given an Axle attribute setting.");
        }
        public TyreResultsViewModel(ResultsService resultsService, TyrePlacement placement)
        {
            resultsService.DegradationResults[placement] += result =>
            {
                var average = Convert.ToInt32(result.Average);
                var range   = Convert.ToInt32(result.Range);

                AverageColour = GetColourForValue(average);
                Average       = average.ToString();

                RangeColour = GetColourForValue(range);
                Range       = range.ToString();
            };

            resultsService.SelectionsInvalid += _ => SetResultsToNa();
            SetResultsToNa();
        }
        public TyreComboBoxViewModel(
            ResultsService resultsService,
            TyrePlacement tyrePlacement,
            IReadOnlyDictionary <TyrePlacement, List <TyreInformation> > availableTyres)
        {
            _resultsService = resultsService;
            _tyrePlacement  = tyrePlacement;
            TyrePlacement   = tyrePlacement.ToString();

            AvailableTyres            = new ObservableCollection <string>();
            _availableTyreInformation = new Dictionary <string, TyreInformation>();
            foreach (var tyre in availableTyres[_tyrePlacement])
            {
                var tyreNameAndFamily = tyre.Name + " - " + tyre.Family;
                AvailableTyres.Add(tyreNameAndFamily);
                _availableTyreInformation[tyreNameAndFamily] = tyre;
            }
        }
Example #6
0
        private void SetTyre(Tyre newTyre, TyrePlacement tyrePlacement)
        {
            switch (tyrePlacement)
            {
            case TyrePlacement.LeftFront:
                this.LeftFrontTyre = newTyre;
                break;

            case TyrePlacement.RightFront:
                this.RightFrontTyre = newTyre;
                break;

            case TyrePlacement.LeftBack:
                this.LeftBackTyre = newTyre;
                break;

            case TyrePlacement.RightBack:
                this.RightBackTyre = newTyre;
                break;

            default:
                throw new ArgumentException("Tyre placement is unknown");
            }
        }
 private DegradationResults CalculateDegradationResults(TyrePlacement placement)
 {
     return(_degradationCalculator.Calculate(_selectedTyres[placement], _selectedTrack.DegradationPoints,
                                             _temperature));
 }
 public void SetSelectedTyre(TyrePlacement placement, TyreInformation tyreInformation)
 {
     _selectedTyres[placement] = tyreInformation;
     RecalculateForEachTyre();
 }
Example #9
0
 public void ChangeTyre(Tyre newTyre, TyrePlacement tyrePlacement)
 {
     SetTyre(newTyre, tyrePlacement);
     this.PublishEvent(new TyreChangedEvent(this.Id, this.Version, newTyre, tyrePlacement));
 }