public ActionResult Index( string applicationPath = null, string siteName = null, IISSiteType siteType = IISSiteType.Default, IISViewActionType viewActionType = IISViewActionType.InformationComponent) { string db = null; string redisDb = null; if (!string.IsNullOrEmpty(applicationPath)) { switch (siteType) { case IISSiteType.Application: db = ConnectionStringsService.GetMssqlDb(applicationPath, false); redisDb = ConnectionStringsService.GetRedisDb(applicationPath, false); break; case IISSiteType.Site: db = ConnectionStringsService.GetMssqlDb(applicationPath, true); redisDb = ConnectionStringsService.GetRedisDb(applicationPath, true); break; default: var exception = new Exception("Такой тип приложения не поддерживается"); NLogger.Log(exception); throw exception; } } var viewModel = new IISIndexViewModel { SiteName = siteName, ApplicationPath = applicationPath, SiteType = siteType, ActionViewType = viewActionType, Database = db, RedisDatabase = redisDb, IsFeatureTableExist = !string.IsNullOrEmpty(db) && FeatureService.GetFeatureTableExist(db).GetAwaiter().GetResult() }; if (!string.IsNullOrEmpty(applicationPath)) { SiteInformation information; // TODO Extract interface for DI using (var infoService = new SiteInformationService()) { information = infoService.GetInformationBySiteType(applicationPath, siteType); } viewModel.ApplicationPoolName = information.ApplicationPoolName; viewModel.IsPoolStoppingOrStopped = ApplicationPoolService.IsPoolStoppingOrStopped(information.ApplicationPoolName); viewModel.IsPoolStartingOrStarted = ApplicationPoolService.IsPoolStartingOrStarted(information.ApplicationPoolName); } return(View(viewModel)); }
public PartialViewResult GetInformationComponent(string path, IISSiteType siteType) { SiteInformation information; using (var infoService = new SiteInformationService()) { information = infoService.GetInformationBySiteType(path, siteType); } return(PartialView("_InformationComponent", information)); }