public static bool IsValid(this Node <OAuthCredentials> credentials, ServicesCollection services) { var serviceName = credentials.Value.Service; if (serviceName == null) { return(false); } if (!services.IsContains(serviceName)) { return(false); } if (services.IsContainsManager(serviceName)) { return(credentials.IsLeaf && credentials.Value.Token != null); } else { return(credentials.IsNode && credentials.Nested.All(n => n.IsValid(services))); } }