private void _bgGetUpdateDetails_RunWorkerCompleted( object sender, RunWorkerCompletedEventArgs e) { try { if (!(e.Result is JToken result)) { return; } this.OemUpdateList = new ObservableCollection <AppPlayerUpdateModel>(); IJEnumerable <JToken> source = result.First <JToken>().Children().Children <JToken>(); if (source != null && source.Any <JToken>()) { foreach (object obj in (IEnumerable <JToken>)source) { this.OemUpdateList.Add(JsonConvert.DeserializeObject <AppPlayerUpdateModel>(obj.ToString(), Utils.GetSerializerSettings())); } } foreach (AppPlayerModel coexistingOem in (Collection <AppPlayerModel>)InstalledOem.CoexistingOemList) { AppPlayerModel item = coexistingOem; AppPlayerUpdateModel playerUpdateModel = this.OemUpdateList.Where <AppPlayerUpdateModel>((Func <AppPlayerUpdateModel, bool>)(u => u.RequestedOem == item.AppPlayerOem)).FirstOrDefault <AppPlayerUpdateModel>(); if (playerUpdateModel != null) { playerUpdateModel.OemDisplayName = item.AppPlayerOemDisplayName; } } foreach (AppPlayerUpdateModel oemUpdate in (Collection <AppPlayerUpdateModel>) this.OemUpdateList) { AppPlayerUpdateModel item = oemUpdate; if (item.OemDisplayName != null && InstalledOem.InstalledCoexistingOemList.Contains(item.RequestedOem)) { SimpleIoc.Default.Unregister <EngineUpdateViewModel>(item.OemDisplayName); SimpleIoc.Default.Register <EngineUpdateViewModel>((Func <EngineUpdateViewModel>)(() => new EngineUpdateViewModel(item)), item.OemDisplayName); EngineUpdateViewModel instance = SimpleIoc.Default.GetInstance <EngineUpdateViewModel>(item.OemDisplayName); if (!this.EngineUpdateViewModelList.Contains(instance)) { this.EngineUpdateViewModelList.Add(instance); } } } this.RaisePropertyChanged("EngineUpdateViewModelList"); this.CheckUpdateGridVisibility = false; this.HyperLinkTextVisibility = true; } catch (Exception ex) { Logger.Error("Failed to get update details err: {0}", (object)ex.Message); } }
public EngineUpdateViewModel(AppPlayerUpdateModel appPlayerUpdateModel) { this.AppPlayerUpdteModel = appPlayerUpdateModel; this.SetBindings(); }