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; } }