public async Task DoRemoveManagedActivityAsync()
        {
            try
            {
                IsBusy = true;

                lock (m_Lock)
                {
                    IEnumerable <IDependentActivity <int, int> > dependentActivities = SelectedActivities.ToList();
                    var activityIds = new HashSet <int>(dependentActivities.Select(x => x.Id));

                    if (!activityIds.Any())
                    {
                        return;
                    }

                    m_CoreViewModel.RecordRedoUndo(() =>
                    {
                        m_CoreViewModel.RemoveManagedActivities(activityIds);
                    });
                }

                HasStaleOutputs  = true;
                IsProjectUpdated = true;

                await RunAutoCompileAsync().ConfigureAwait(true);
            }
            catch (Exception ex)
            {
                DispatchNotification(
                    Resource.ProjectPlan.Properties.Resources.Title_Error,
                    ex.Message);
            }
            finally
            {
                SelectedActivities.Clear();
                RaisePropertyChanged(nameof(Activities));
                RaisePropertyChanged(nameof(SelectedActivities));
                IsBusy = false;
                RaiseCanExecuteChangedAllCommands();
            }
        }
        public async Task DoRemoveManagedActivityAsync()
        {
            try
            {
                IsBusy = true;

                lock (m_Lock)
                {
                    var activityIds = new HashSet <int>(SelectedActivities.Select(x => x.Id));
                    if (!activityIds.Any())
                    {
                        return;
                    }
                    m_CoreViewModel.RemoveManagedActivities(activityIds);
                }

                HasStaleOutputs  = true;
                IsProjectUpdated = true;

                await RunAutoCompileAsync();
            }
            catch (Exception ex)
            {
                DispatchNotification(
                    Properties.Resources.Title_Error,
                    ex.Message);
            }
            finally
            {
                SelectedActivities.Clear();
                RaisePropertyChanged(nameof(Activities));
                RaisePropertyChanged(nameof(SelectedActivities));
                IsBusy = false;
                RaiseCanExecuteChangedAllCommands();
            }
        }