public static ServiceDocument ToServiceDocument(IEnumerable <string> userStreams, IEnumerable <string> systemStreams, string userHostName) { if (userStreams == null || systemStreams == null || userHostName == null) { return(null); } var document = new ServiceDocument(); var userWorkspace = new WorkspaceElement(); userWorkspace.SetTitle("User event streams"); var systemWorkspace = new WorkspaceElement(); systemWorkspace.SetTitle("System event streams"); foreach (var userStream in userStreams) { var collection = new CollectionElement(); collection.SetTitle(userStream); collection.SetUri(HostName.Combine(userHostName, "/streams/{0}", userStream)); collection.AddAcceptType(ContentType.Xml); collection.AddAcceptType(ContentType.Atom); collection.AddAcceptType(ContentType.Json); collection.AddAcceptType(ContentType.AtomJson); userWorkspace.AddCollection(collection); } foreach (var systemStream in systemStreams) { var collection = new CollectionElement(); collection.SetTitle(systemStream); collection.SetUri(HostName.Combine(userHostName, "/streams/{0}", systemStream)); collection.AddAcceptType(ContentType.Xml); collection.AddAcceptType(ContentType.Atom); collection.AddAcceptType(ContentType.Json); collection.AddAcceptType(ContentType.AtomJson); systemWorkspace.AddCollection(collection); } document.AddWorkspace(userWorkspace); document.AddWorkspace(systemWorkspace); return(document); }