AcManager.Pages.Drive.Srs.ScriptProvider.SetCars C# (CSharp) Method

SetCars() public method

public SetCars ( string json ) : void
json string
return void
            public void SetCars(string json) {
                Sync(async () => {
                    if (json == null || Associated == null) return;

                    var ids = JArray.Parse(json).ToObject<string[]>();
                    var i = 0;
                    using (var waiting = new WaitingDialog()) {
                        waiting.Report(0);

                        foreach (var id in ids.NonNull()) {
                            var car = await CarsManager.Instance.GetByIdAsync(id);
                            if (car == null) continue;

                            await car.SkinsManager.EnsureLoadedAsync();

                            var skins = car.SkinsManager.LoadedOnly.ToList();
                            var skin = skins.FirstOrDefault();
                            if (skin == null) continue;

                            var liveries = new StringBuilder();
                            foreach (var x in skins) {
                                liveries.Append(
                                        $@"<img data-skin-id='{HttpUtility.HtmlEncode(x.Id)}' width=24 style='margin-left:2px' src='{await
                                                Associated.GetImageUrlAsync(x.LiveryImage)}'>");
                            }

                            Associated.Execute($@"
document.querySelector('[id^=""{id}1""]').innerHTML = ""<img width=280 style='margin-right:10px' src='{await Associated.GetImageUrlAsync(skin.PreviewImage)}'>"";
document.querySelector('[id^=""{id}2""]').innerHTML = ""{HttpUtility.HtmlEncode(car.DisplayName)}<img width=48 style='margin-left:2px;margin-right:10px;margin-top:-10px;float:left' src='{await
                                    Associated.GetImageUrlAsync(car.LogoIcon)}'>"";
document.querySelector('[id^=""{id}3""]').innerHTML = ""{liveries}"";
document.querySelector('[id^=""{id}4""]').textContent = {JsonConvert.SerializeObject(skin.Id)};

var l = document.querySelectorAll('[id^=""{id}3""] img');
for (var i = 0; i < l.length; i++){{
    l[i].addEventListener('click', function(){{
        var s = this.getAttribute('data-skin-id');
        document.querySelector('[id^=""{id}4""]').innerHTML = s;
        window.external.UpdatePreview(""{id}"", s);
    }}, false);                   
}}
");

                            waiting.Report(new AsyncProgressEntry(car.DisplayName, i++, ids.Length));
                        }
                    }
                });
            }