public async static Task SaveRemotes(ILazinator hierarchy, bool freeRemoteStorage = true, bool excludeTopOfHierarchy = false) { hierarchy.SerializeLazinator(); foreach (ILazinator remoteLazinator in hierarchy.EnumerateLazinatorNodes(x => x is IRemote && (!excludeTopOfHierarchy || x != hierarchy), true, x => true, true, false)) { await SaveRemotes(remoteLazinator, freeRemoteStorage, true); IRemote r = (IRemote)remoteLazinator; await r.SaveValue(freeRemoteStorage); } }