private async void Refresh(bool isCaching = true, bool checkForUpdates = false)
        {
            var releases = await _releaseManager.GetReleases(isCaching);

            var updateBranch = (await _releaseManager.GetTargetRelease())?.Branch;

            UpdateReleases = releases
                             .GroupBy(p => p.Branch)
                             .Select(p => p.OrderBy(q => q.Version).Last())
                             .Where(p => p.MergedTo == null)
                             .OrderBy(p => p.Branch)
                             .ToArray();
            UpdateRelease = UpdateReleases.FirstOrDefault(p => p.Branch == updateBranch);

            var rollbackVersion = RollbackRelease?.Version;

            RollbackReleases = _releaseManager.PreviousVersions
                               .Select(p => releases.FirstOrDefault(q => q.Version == p))
                               .Where(p => p != null && p.Version != _releaseManager.CurrentVersion)
                               .ToArray();
            RollbackRelease = RollbackReleases.FirstOrDefault(p => p.Version == rollbackVersion) ?? RollbackReleases.FirstOrDefault();

            if (checkForUpdates && IsUpdatingAutomatically && UpdateRelease != null)
            {
                var installedVersion = Assembly.GetExecutingAssembly().GetName().Version;
                if (UpdateRelease.Version > installedVersion)
                {
                    Update(UpdateRelease);
                }
            }
        }