private void Updated(object sender, WorkspaceItem pItem)
 {
     WorkspaceItemUpdated?.Invoke(
         this,
         new WorkspaceUpdatedEventArgs(
             new Data.WorkspaceItem(pItem.ID)
     {
         New     = pItem.New,
         Final   = pItem.Final,
         Project = (pItem.Project != null) ? pItem.Project.GetProject() : null
     },
             WorkspaceAction.Updated
             )
         );
 }
        public void Add(WorkspaceItem pItem)
        {
            _              = WorkspaceItems.TryAdd(pItem.ID.ToString(), pItem);
            pItem.Updated += Updated;

            WorkspaceItemUpdated?.Invoke(
                this,
                new WorkspaceUpdatedEventArgs(
                    new Data.WorkspaceItem(pItem.ID)
            {
                New     = pItem.New,
                Final   = pItem.Final,
                Project = (pItem.Project != null) ? pItem.Project.GetProject() : null
            },
                    WorkspaceAction.New
                    )
                );
        }
 public void Remove(WorkspaceItem pItem)
 {
     if (WorkspaceItems.TryRemove(pItem.ID.ToString(), out var o))
     {
         o.Updated -= Updated;
         WorkspaceItemUpdated?.Invoke(
             this,
             new WorkspaceUpdatedEventArgs(
                 new Data.WorkspaceItem(pItem.ID)
         {
             New     = pItem.New,
             Final   = pItem.Final,
             Project = (pItem.Project != null) ? pItem.Project.GetProject() : null
         },
                 WorkspaceAction.Deleted
                 )
             );
     }
 }