The following is the sample code snippet for how to differentiate workspace site and team site. Also this code list out all the workspace site in the server.
SPGlobalAdmin globalAdmin = new SPGlobalAdmin(); //Get all the virtual servers. foreach(SPVirtualServer objVirtualServer in globalAdmin.VirtualServers) { //if the site is ready - (already extended SPS web site) if (objVirtualServer.State == SPVirtualServerState.Ready) { ServerAndSitesInfo info = new ServerAndSitesInfo(); info.isVirtualServer = true; info.spweb = null; info.url = objVirtualServer.Url.ToString(); info.title = objVirtualServer.Description; arrSitesAndSubsites.Add(info); showWorkspaces = showWorkspaces.ToLower(); //Loop thro' the sites foreach (SPSite spsite in objVirtualServer.Sites) { foreach(SPWeb spweb in spsite.AllWebs) { try { if(spweb.WebTemplateId == 1 || (spweb.WebTemplateId == 2 && showWorkspaces == "yes")) ////2 = Meetings, Invalid = -1, 1=Team Site { info = new ServerAndSitesInfo(); info.isVirtualServer = false; info.spweb = spweb; info.url = spweb.Url.ToString(); info.title = spweb.Title; arrSitesAndSubsites.Add(info); } } catch{} } } } }
Keep coding :)