public WebSiteOverViewViewModel(string name, IisInformationController controller) { if(string.IsNullOrWhiteSpace(name)) throw new ArgumentException("name"); if (controller == null) throw new ArgumentNullException("controller"); Name = name; NumberOfApplications = controller.ListApplicaitonsForWebSite(name).Count; AppPoolName = controller.GetWebSite(name).ApplicationDefaults.ApplicationPoolName; }
public AppPoolOverViewViewModel(string name, IisInformationController controller) { if(string.IsNullOrWhiteSpace(name)) throw new ArgumentException("name"); if (controller == null) throw new ArgumentNullException("controller"); Name = name; NumberOfWebSites = controller.ListSitesFromAppPool(Name).Count; NumberOfVirtualDirectories = controller.ListApplicationsFromAppPool(Name).Count; }
public static IList<ApplicationOverVewViewModel> GetAll(IisInformationController controller) { List<ApplicationOverVewViewModel> apps = new List<ApplicationOverVewViewModel>(); foreach (Site site in controller.ListWebsites()) { apps.AddRange(Get(site.Name, controller)); } return apps; }
public static IList<ApplicationOverVewViewModel> Get(string websiteName, IisInformationController controller) { Site webSite = controller.GetWebSite(websiteName); if(webSite == null) throw new ArgumentOutOfRangeException("websiteName"); return webSite.Applications.Select(app => new ApplicationOverVewViewModel() { Path = app.Path, AppPoolName = app.ApplicationPoolName, EnabledProtocols = app.EnabledProtocols, ParentWebsite = websiteName }).ToList(); }
private IList<IisApplicationViewModel> CollateIisApps(IisInformationController controller, IList<string> appPools) { IList<IisApplicationViewModel> appOverViews = new List<IisApplicationViewModel>(); IList<Application> apps = controller.ListApplicationsFromAppPools(appPools); IList<Site> sites = controller.ListSitesFromAppPools(appPools); foreach (Application application in apps) { appOverViews.Add(new IisApplicationViewModel() { ApplicationType = IisApplicationType.Application, Name = application.Path }); } foreach (Site site in sites) { appOverViews.Add(new IisApplicationViewModel() { ApplicationType = IisApplicationType.WebSite, Name = site.Name}); } return appOverViews; }
private void SetAppPool() { IisInformationController controller = new IisInformationController(); AppPools = iisInformationController.ListAppPools().Select(pool => new AppPoolOverViewViewModel(pool.Name, controller)).ToList(); AppPool = null; }