Exemplo n.º 1
0
        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));
        }
Exemplo n.º 2
0
        public IISSiteWrapper(Site site)
        {
            var ftpSsl = !string.IsNullOrWhiteSpace(site.
                                                    GetChildElement("ftpServer")?.
                                                    GetChildElement("security")?.
                                                    GetChildElement("ssl")?.
                                                    GetAttributeValue("serverCertHash")?.
                                                    ToString());

            Site     = site;
            Bindings = site.Bindings.Select(x =>
            {
                var secure = x.Protocol == "https" || ((x.Protocol == "ftp") && ftpSsl);
                return(new IISBindingWrapper(x, secure));
            }).ToList();

            if (Bindings.All(b => b.Protocol == "ftp" || b.Protocol == "ftps"))
            {
                Type = IISSiteType.Ftp;
            }
            else if (Bindings.Any(b => b.Protocol == "http" || b.Protocol == "https"))
            {
                Type = IISSiteType.Web;
            }
        }
Exemplo n.º 3
0
        public PartialViewResult GetConfigurationFileComponent(string path, IISSiteType siteType)
        {
            var filePath = ConnectionStringsService.GetConfigurationFilePath(path, siteType);

            var fileReader = new FileReader();
            var fileText   = fileReader.ReadTextFile(filePath);

            return(PartialView("_ConfigurationFileComponent", fileText));
        }
Exemplo n.º 4
0
        public PartialViewResult GetInformationComponent(string path, IISSiteType siteType)
        {
            SiteInformation information;

            using (var infoService = new SiteInformationService())
            {
                information = infoService.GetInformationBySiteType(path, siteType);
            }
            return(PartialView("_InformationComponent", information));
        }
Exemplo n.º 5
0
        public SiteInformation GetInformationBySiteType(string path, IISSiteType siteType)
        {
            switch (siteType)
            {
            case IISSiteType.Site:
                return(GetSiteInformation(path));

            case IISSiteType.Application:
                return(GetApplicationInformation(path));

            default:
                return(null);
            }
        }
Exemplo n.º 6
0
        public ActionResult Index(string applicationPath           = null,
                                  IISSiteType siteType             = IISSiteType.Default,
                                  IISViewActionType viewActionType = IISViewActionType.InformationComponent)
        {
            string db = null;

            if (!string.IsNullOrEmpty(applicationPath))
            {
                switch (siteType)
                {
                case IISSiteType.Application:
                    db = ConnectionStringsService.GetMssqlDb(applicationPath, false);
                    break;

                case IISSiteType.Site:
                    db = ConnectionStringsService.GetMssqlDb(applicationPath, true);
                    break;
                }
            }

            ViewBag.Name           = applicationPath;
            ViewBag.SiteType       = siteType;
            ViewBag.ActionViewType = viewActionType;
            ViewBag.Database       = db;

            if (!string.IsNullOrEmpty(db))
            {
                ViewBag.IsFeatureTableExist = FeatureService.GetFeatureTableExist(db).GetAwaiter().GetResult();
            }
            else
            {
                ViewBag.IsFeatureTableExist = false;
            }

            return(View());
        }
 /// <summary>
 /// Get path to configuration file by site
 /// </summary>
 /// <param name="siteName">Site name or path</param>
 /// <param name="siteType">is site</param>
 /// <returns>Path for config file</returns>
 public string GetConfigurationFilePath(string siteName, IISSiteType siteType)
 {
     return(_connectionStringManager.GetConfigurationFilePath(siteName, siteType == IISSiteType.Site));
 }
Exemplo n.º 8
0
        public PartialViewResult GetDeleteApplicationModal(string pathOrName, string siteName, IISSiteType siteType, string database)
        {
            ViewBag.PathOrName = pathOrName;
            ViewBag.SiteName   = siteName;
            ViewBag.SiteType   = siteType;
            ViewBag.Database   = database;

            return(PartialView("_DeleteApplicationModal"));
        }
Exemplo n.º 9
0
 public PartialViewResult GetConnectionStringsComponent(string path, IISSiteType siteType)
 {
     //var data = ConnectionStringsService.GetSiteConnectionStrings(path, siteType == IISSiteType.Site);
     //var connectionStrings = data.ConnectionStrings;
     return(PartialView("_ConnectionStringsComponent"));
 }