private async void AddFavoriteButton_Click(object sender, System.Windows.RoutedEventArgs e)
        {
            await this.Window.RunAsyncOperation(async() =>
            {
                if (this.AddFavoriteTypeComboBox.SelectedIndex >= 0)
                {
                    string selection = (string)this.AddFavoriteTypeComboBox.SelectedItem;
                    if (selection.Equals("Team"))
                    {
                        if (!string.IsNullOrEmpty(this.AddFavoriteTeamTextBox.Text))
                        {
                            TeamModel team = await ChannelSession.Connection.GetTeam(this.AddFavoriteTeamTextBox.Text);
                            if (team != null)
                            {
                                if (ChannelSession.Settings.FavoriteGroups.Any(t => t.Team != null && t.Team.id.Equals(team.id)))
                                {
                                    await MessageBoxHelper.ShowMessageDialog("You have already favorited this team.");
                                    return;
                                }

                                ChannelSession.Settings.FavoriteGroups.Add(new FavoriteGroupModel(team));
                                await ChannelSession.SaveSettings();

                                await this.RefreshFavoriteGroups();
                            }
                            else
                            {
                                await MessageBoxHelper.ShowMessageDialog("Could not find a team by that name.");
                            }
                        }
                    }
                    else if (selection.Equals("User"))
                    {
                        if (!string.IsNullOrEmpty(this.AddFavoriteUserTextBox.Text) && !string.IsNullOrEmpty(this.AddFavoriteUserGroupNameTextBox.Text))
                        {
                            UserModel user = await ChannelSession.Connection.GetUser(this.AddFavoriteUserTextBox.Text);
                            if (user != null)
                            {
                                FavoriteGroupModel group = ChannelSession.Settings.FavoriteGroups.FirstOrDefault(t => t.GroupName != null && t.GroupName.Equals(this.AddFavoriteUserGroupNameTextBox.Text));
                                if (group != null)
                                {
                                    if (group.GroupUserIDs.Any(id => id.Equals(user.id)))
                                    {
                                        await MessageBoxHelper.ShowMessageDialog("This user already exists in this group.");
                                        return;
                                    }
                                }

                                if (group == null)
                                {
                                    group = new FavoriteGroupModel(this.AddFavoriteUserGroupNameTextBox.Text);
                                    ChannelSession.Settings.FavoriteGroups.Add(group);
                                }
                                group.GroupUserIDs.Add(user.id);
                                await ChannelSession.SaveSettings();

                                await this.RefreshFavoriteGroups();
                            }
                            else
                            {
                                await MessageBoxHelper.ShowMessageDialog("Could not find a user by that name.");
                            }
                        }
                    }
                }
            });
        }
 public FavoriteGroupViewModel(FavoriteGroupModel group)
 {
     this.Group          = group;
     this.LastCheckUsers = new List <UserWithChannelModel>();
 }