Example #1
0
        protected virtual async Task LoadAsync()
        {
            var start = Stopwatch.StartNew();

            LoadingReset = false;

            bool anyLoaded;

            do
            {
                anyLoaded = false;
                await WrappersList.ToList().Select(async x => {
                    try {
                        if (x.IsLoaded)
                        {
                            return;
                        }
                        anyLoaded = true;

                        var loaded = await Task.Run(() => CreateAndLoadAcObject(x.Value.Id, x.Value.Enabled, false));
                        if (x.IsLoaded)
                        {
                            return;
                        }

                        x.Value = loaded;
                        loaded.PastLoad();
                    } finally {
                        LoadedCount++;
                    }
                }).WhenAll(SettingsHolder.Content.LoadingConcurrency);
            } while (anyLoaded);

            IsLoaded = true;
            ListReady();

            Logging.Write($"[{GetType().Name}] Async loading finished: {WrappersList.Count} objects, {start.ElapsedMilliseconds} ms");

            if (LoadingReset)
            {
                Load();
            }
        }
Example #2
0
        protected void Load()
        {
            var start = Stopwatch.StartNew();

            lock (_loadLock) {
                foreach (var item in WrappersList.Where(x => !x.IsLoaded))
                {
                    item.Value = CreateAndLoadAcObject(item.Value.Id, item.Value.Enabled);
                }

                IsLoaded = true;
                ListReady();

                if (GetType() != typeof(CarSkinsManager))
                {
                    Logging.Write($"[{GetType().Name}] Loading finished: {WrappersList.Count} objects, {start.ElapsedMilliseconds} ms");
                }
            }
        }
Example #3
0
        protected override async Task LoadAsync()
        {
            LoadingReset = false;
            await WrappersList.Where(x => !x.IsLoaded).Select(async x => {
                var loaded = await Task.Run(() => CreateAndLoadAcObject(x.Value.Id, x.Value.Enabled, false));
                if (x.IsLoaded)
                {
                    return;
                }

                Created?.Invoke(this, new AcObjectEventArgs <TrackSkinObject>(loaded));

                x.Value = loaded;
                loaded.PastLoad();
            }).WhenAll(SettingsHolder.Content.LoadingConcurrency);

            IsLoaded = true;
            ListReady();

            if (LoadingReset)
            {
                Load();
            }
        }
        public override KunosCareerObject GetDefault()
        {
            var v = WrappersList.FirstOrDefault(x => x.Value.Id.Contains(@"series0"));

            return(v != null?EnsureWrapperLoaded(v) : base.GetDefault());
        }
Example #5
0
        /// <summary>
        /// Gets first enabled skin.
        /// </summary>
        public override TrackSkinObject GetDefault()
        {
            var wrapper = WrappersList.FirstOrDefault(x => x.Value.Enabled);

            return(wrapper == null ? null : EnsureWrapperLoaded(wrapper));
        }
Example #6
0
        public override FontObject GetDefault()
        {
            var v = WrappersList.FirstOrDefault(x => x.Value.Id.Contains(@"arial"));

            return(v == null?base.GetDefault() : EnsureWrapperLoaded(v));
        }
Example #7
0
        public override WeatherObject GetDefault()
        {
            var v = WrappersList.GetByIdOrDefault("3_clear") ?? WrappersList.FirstOrDefault(x => x.Value.Id.Contains(@"clear"));

            return(v == null?base.GetDefault() : EnsureWrapperLoaded(v));
        }
Example #8
0
        public override DriverModelObject GetDefault()
        {
            var v = WrappersList.FirstOrDefault(x => x.Value.Id.Contains(@"driver.kn5"));

            return(v == null?base.GetDefault() : EnsureWrapperLoaded(v));
        }
Example #9
0
        public T GetFirstOrNull()
        {
            var wrapper = WrappersList.FirstOrDefault();

            return(wrapper == null ? null : EnsureWrapperLoaded(wrapper));
        }