Esempio n. 1
0
        public AbstractCalendarEntryViewModel Create(EventTemplate eventTemplate, string simulatorName, bool useCalendarEventNames, bool autoReplaceKnownTracks)
        {
            if (!string.IsNullOrEmpty(simulatorName) && autoReplaceKnownTracks && _trackTemplateToSimTrackMapper.TryGetSimulatorTrackName(simulatorName, eventTemplate.TrackTemplate.TrackName, out string simulatorTrackName))
            {
                Track trackDefinition = _simulatorContentController.GetAllTracksForSimulator(simulatorName).FirstOrDefault(x => x.Name == simulatorTrackName);
                if (trackDefinition != null)
                {
                    var newEntry = _viewModelFactory.Create <ExistingTrackCalendarEntryViewModel>();
                    newEntry.CustomEventName = useCalendarEventNames ? eventTemplate.EventName : string.Empty;
                    newEntry.TrackName       = simulatorTrackName;
                    newEntry.LayoutLength    = trackDefinition.LapDistance;
                    bool hasMap = _mapsLoader.TryLoadMap(simulatorName, simulatorTrackName, out TrackMapDto trackMapDto);
                    if (hasMap)
                    {
                        newEntry.TrackGeometryViewModel.FromModel(trackMapDto.TrackGeometry);
                    }

                    return(newEntry);
                }
            }
            return(new CalendarPlaceholderEntryViewModel()
            {
                CustomEventName = useCalendarEventNames ? eventTemplate.EventName : string.Empty,
                LayoutLength = eventTemplate.TrackTemplate.LayoutLength,
                TrackName = eventTemplate.TrackTemplate.TrackName,
            });
        }
Esempio n. 2
0
        private TrackOverviewViewModel CreateTrackOverviewViewModel(SimulatorDataSet dataSet, ChampionshipDto championship)
        {
            TrackInfo trackInfo = dataSet.SessionInfo.TrackInfo;
            bool      hasMap    = _mapsLoader.TryLoadMap(championship.SimulatorName, trackInfo.TrackFullName, out TrackMapDto trackMapDto);
            var       trackOverviewViewModel = _viewModelFactory.Create <TrackOverviewViewModel>();

            trackOverviewViewModel.TrackName    = trackInfo.TrackFullName;
            trackOverviewViewModel.LayoutLength = $"{trackInfo.LayoutLength.GetByUnit(_settingsProvider.DisplaySettingsViewModel.DistanceUnits):N2} {Distance.GetUnitsSymbol(_settingsProvider.DisplaySettingsViewModel.DistanceUnits)} ";
            if (hasMap)
            {
                trackOverviewViewModel.TrackGeometryViewModel.FromModel(trackMapDto.TrackGeometry);
            }

            if (_trackRecordsProvider.TryGetOverallBestRecord(dataSet.Source, trackInfo.TrackFullName, SessionType.Race, out RecordEntryDto recordEntry))
            {
                trackOverviewViewModel.OverallRecord.FromModel(recordEntry);
            }

            if (_trackRecordsProvider.TryGetCarBestRecord(dataSet.Source, trackInfo.TrackFullName, dataSet.PlayerInfo.CarName, SessionType.Race, out recordEntry))
            {
                trackOverviewViewModel.CarRecord.FromModel(recordEntry);
            }

            if (_trackRecordsProvider.TryGetClassBestRecord(dataSet.Source, trackInfo.TrackFullName, dataSet.PlayerInfo.CarClassName, SessionType.Race, out recordEntry))
            {
                trackOverviewViewModel.ClassRecord.FromModel(recordEntry);
            }

            return(trackOverviewViewModel);
        }
        private void ConfirmSimulatorSelection()
        {
            if (string.IsNullOrWhiteSpace(_championshipCreationViewModel.SelectedSimulator))
            {
                return;
            }
            _championshipCreationViewModel.IsSimulatorSelectionEnabled = false;
            _selectedSimulator = _championshipCreationViewModel.SelectedSimulator;

            _championshipCreationViewModel.CalendarDefinitionViewModel.CalendarViewModel.SimulatorName = _selectedSimulator;

            var allTracks = _simulatorContentController.GetAllTracksForSimulator(_selectedSimulator).OrderBy(x => x.Name);
            List <AbstractTrackTemplateViewModel> tracksTemplates = new List <AbstractTrackTemplateViewModel> {
                _viewModelFactory.Create <GenericTrackTemplateViewModel>()
            };

            tracksTemplates[0].UseTemplateInCalendarCommand = new RelayCommand(UseTemplateInCalendar);
            foreach (Track currentTrack in allTracks)
            {
                var newViewModel = _viewModelFactory.Create <ExistingTrackTemplateViewModel>();
                newViewModel.TrackName                    = currentTrack.Name;
                newViewModel.LayoutLengthMeters           = currentTrack.LapDistance;
                newViewModel.UseTemplateInCalendarCommand = new RelayCommand(UseTemplateInCalendar);
                bool hasMap = _mapsLoader.TryLoadMap(_selectedSimulator, currentTrack.Name, out TrackMapDto trackMapDto);
                if (hasMap)
                {
                    newViewModel.TrackGeometryViewModel.FromModel(trackMapDto.TrackGeometry);
                }
                tracksTemplates.Add(newViewModel);
            }

            _championshipCreationViewModel.CalendarDefinitionViewModel.AvailableTracksViewModel.TrackTemplateViewModels = tracksTemplates;
        }
Esempio n. 4
0
        private void InitializeViewModel(SessionInfoDto sessionInfo)
        {
            _fakeDrivers.Clear();
            string formattedTrackName = FormatTrackName(sessionInfo.TrackName, sessionInfo.LayoutName);

            _mapAvailable = _mapsLoader.TryLoadMap(sessionInfo.Simulator, formattedTrackName, out _lastMap);
            if (_mapAvailable)
            {
                MapViewViewModel.LoadTrack(_lastMap);
            }
        }
Esempio n. 5
0
        protected override void ApplyModel(ChampionshipDto model)
        {
            Title         = model.ChampionshipName;
            EventsResults = new List <EventResultOverviewViewModel>();
            foreach (EventDto eventDto in model.Events)
            {
                var eventResultViewModel = _viewModelFactory.Create <EventResultOverviewViewModel>();
                eventResultViewModel.FromModel(eventDto);
                EventsResults.Add(eventResultViewModel);

                if (_mapsLoader.TryLoadMap(model.SimulatorName, eventDto.TrackName, out TrackMapDto trackMapDto))
                {
                    eventResultViewModel.TrackGeometryViewModel.FromModel(trackMapDto.TrackGeometry);
                }
            }
        }