private void ProcessLoaded(ClientObject clientObject)
        {
            LogTrace("Processing loaded object");
            switch (clientObject)
            {
            case Web w:
                LoadedWebs.AddOrUpdate(w.ServerRelativeUrl, w);
                break;

            case Site s:
                LoadedSites.AddOrUpdate(s.ServerRelativeUrl, s);
                break;

            case List l:
                LoadedLists.AddOrUpdate(l.Title, l);
                break;

            case WebCollection wc:
                wc.ToList().ForEach(ProcessLoaded);
                break;

            case ListCollection lc:
                lc.ToList().ForEach(ProcessLoaded);
                break;
            }
        }
        private void ProcessDelete(ClientObject clientObject)
        {
            LogTrace("Processing deleted object");
            switch (clientObject)
            {
            case Web w:
                LoadedWebs.Remove(w.Url);
                w.DeleteObject();
                break;

            case List l:
                LoadedLists.Remove(l.Title);
                l.DeleteObject();
                break;

            case ListItemCollection lic:
                lic.ToList().ForEach(li => li.DeleteObject());
                break;
            }
        }