コード例 #1
0
        public bool ImmediateChange(Uri uri)
        {
            var carId = uri.GetQueryParam("CarId");

            if (carId == null || carId != _carId)
            {
                return(false);
            }

            var id = uri.GetQueryParam("Id");

            if (id == null)
            {
                return(false);
            }

            var source = uri.GetQueryParamEnum <CarSetupsRemoteSource>("RemoteSource");

            if (source == CarSetupsRemoteSource.None)
            {
                return(false);
            }

            var obj = RemoteSetupsManager.GetManager(_source, carId)?.GetById(id);

            if (obj == null)
            {
                return(false);
            }

            _object = obj;
            SetModel();
            return(true);
        }
コード例 #2
0
        void ILoadableContent.Load()
        {
            do
            {
                _carObject = CarsManager.Instance.GetById(_carId);
                if (_carObject == null)
                {
                    _object = null;
                    return;
                }

                _object = RemoteSetupsManager.GetManager(_source, _carId)?.GetById(_id);
            } while (_carObject.Outdated);
        }
コード例 #3
0
        async Task ILoadableContent.LoadAsync(CancellationToken cancellationToken)
        {
            do
            {
                _carObject = await CarsManager.Instance.GetByIdAsync(_carId);

                if (_carObject == null)
                {
                    _object = null;
                    return;
                }

                await Task.Run(() => {
                    _carObject.AcdData?.GetIniFile("car.ini");
                    _carObject.AcdData?.GetIniFile("setup.ini");
                    _carObject.AcdData?.GetIniFile("tyres.ini");
                }, cancellationToken);

                _object = RemoteSetupsManager.GetManager(_source, _carId)?.GetById(_id);
            } while (_carObject.Outdated);
        }