AutoMerge.BranchesViewModel.RefreshAsync C# (CSharp) Method

RefreshAsync() protected method

Refresh the changeset data asynchronously.
protected RefreshAsync ( ) : System.Threading.Tasks.Task
return System.Threading.Tasks.Task
        protected override async Task RefreshAsync()
        {
            var changeset = _changeset;
            Logger.Debug("Start refresh branches section for changeset {0} ...",
                changeset == null ? "null" : changeset.ChangesetId.ToString(CultureInfo.InvariantCulture));

            string errorMessage = null;
            if (Workspaces.Count == 0)
            {
                errorMessage = "Workspaces not found";
            }
            errorMessage = errorMessage ?? CalculateError(changeset);
            if (changeset == null || !string.IsNullOrEmpty(errorMessage))
            {
                ErrorMessage = errorMessage;
                Branches = new ObservableCollection<MergeInfoViewModel>();
            }
            else
            {
                Logger.Info("Getting branches for changeset {0} ...",
                    changeset.ChangesetId.ToString(CultureInfo.InvariantCulture));
                var branches = await Task.Run(() => GetBranches(Context, changeset));
                Logger.Info("Getting branches end for changeset {0}",
                    changeset.ChangesetId.ToString(CultureInfo.InvariantCulture));

                // Selected changeset in sequence
                if (changeset.ChangesetId == _changeset.ChangesetId)
                {
                    Branches = branches;
                    ErrorMessage = branches.Count <= 1 ? "Target branches not found" : null;
                    MergeCommand.RaiseCanExecuteChanged();
                }
            }
            Logger.Debug("End refresh branches section for changeset {0}",
                changeset == null ? "null" : changeset.ChangesetId.ToString(CultureInfo.InvariantCulture));
        }