public void AddTab(Tab tab)
 {
     tab.Owner = Status.Users.Current.Name;
     tab.Id = System.Guid.NewGuid();
     Status.Tabs.Add (tab); // not really sure this is even needed? ==> when new user connects
     Status.Users.ForEach (user => user.Callback.ReceiveTabAdded (tab));
 }
 public void ScrollTabToTagId(Tab tab, string tagId)
 {
     Status.Users.ForOthers (user => user.Callback.ReceiveTabScrolledToTagId (tab, tagId));
 }
 public void ScrollTabToDomId(Tab tab, int domId)
 {
     Status.Users.ForOthers (user => user.Callback.ReceiveTabScrolledToDomId (tab, domId));
 }
 public void CloseTab(Tab tab)
 {
     Status.Tabs.Remove(tab);
     Status.Users.ForEach(user => user.Callback.ReceiveTabClosed(tab));
 }
 public void ActivateTab(Tab tab)
 {
     Status.Users.ForOthers (user => user.Callback.ReceiveTabActivated (tab));
 }
        public void UpdateTab(Tab tab)
        {
            Tab target = Status.Tabs.Find(x => x.Id == tab.Id);
            target.Title = tab.Title;
            target.Url = tab.Url;

            Status.Users.ForOthers(user => user.Callback.ReceiveTabUpdated(tab));
        }