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 :)