/// <summary>
        /// Repopulates the team projects and children teams
        ///     returns a started Task so it can be awaited on
        /// </summary>
        private static Task <List <TeamProjectViewModel> > UpdateTeamProjects()
        {
            Task <List <TeamProjectViewModel> > t = Task.Run <List <TeamProjectViewModel> >(() =>
            {
                List <TeamProjectViewModel> result = new List <TeamProjectViewModel>();
                try
                {
                    var projects = BugReporter.GetProjectsAsync().Result;
                    foreach (var project in projects.OrderBy(project => project.Name))
                    {
                        var vm = new TeamProjectViewModel(project, new List <TeamProjectViewModel>());
                        result.Add(vm);
                    }
                    PopulateTreeviewWithTeams(result);
                    return(result);
                }
                catch (Exception)
                {
                    return(null);
                }
            });

            return(t);
        }