public List <SiteDTO> GetSites(string domain = "localhost") { var sites = new List <SiteDTO>(); var manager = new ServerManager(); foreach (var site in manager.Sites) { var webSite = new SiteDTO() { Name = site.Name, Identity = Convert.ToInt32(site.Id), PhysicalPath = site.Applications["/"].VirtualDirectories["/"].PhysicalPath, ServerStatus = ServerStatus.GetStatus((int)site.State), AppPoolName = site.Applications["/"].ApplicationPoolName }; foreach (var app in site.Applications) { if (app.Path == "/") { continue; } var appSite = new ApplicationSiteDTO() { AppPoolName = app.ApplicationPoolName, Name = app.Path, PhysicalPath = app.VirtualDirectories["/"].PhysicalPath, }; webSite.Applications.Add(appSite); } sites.Add(webSite); } return(sites); }
static ServerStatus GetSiteStatus(DirectoryEntry server) { var state = Convert.ToInt32(server.Properties["ServerState"].Value); return(ServerStatus.GetStatus(state)); }