/// <inheritdoc /> protected override void OnInitialize() { base.OnInitialize(); var loadingTask = Task.Run(async delegate { try { var supportedTypes = Reference.Type.Model.SupportedTypes; var possibleTargetsLoadTask = _resourceServiceModel.GetResources(new ResourceQuery { Types = supportedTypes }); TaskNotifier = new TaskNotifier(possibleTargetsLoadTask); var possibleTargets = await possibleTargetsLoadTask; var possibleTargetsVms = possibleTargets.Where(resource => Reference.Targets.All(t => t.Id != resource.Id)) .Select(possible => new ResourceInfoViewModel(possible)); await Execute.OnUIThreadAsync(delegate { PossibleTargets = possibleTargetsVms.ToArray(); SelectedTarget = PossibleTargets.FirstOrDefault(); NotifyOfPropertyChange(nameof(PossibleTargets)); }); } catch (Exception e) { await Execute.OnUIThreadAsync(() => ErrorMessage = e.Message); } }); TaskNotifier = new TaskNotifier(loadingTask); }
/// <summary> /// Initializes a new instance of the <see cref="ResourceTreeItemViewModel"/> class. /// </summary> public ResourceTreeItemViewModel(ResourceModel model) { Resource = new ResourceInfoViewModel(model); }