public ActionResult RobotsTxt()
        {
            string robotsTxt = "Sitemap: " + _siteUriResolver.MakeAbsolute("/sitemap.xml") + "\r\n";

            if (HttpContext.IsDebuggingEnabled && Request.Url.Host.ToLower() != "localhost")
            {
                // Disallow when we're on the server but in debug mode
                robotsTxt += "User-agent: iisbot/1.0 (+http://www.iis.net/iisbot.html)\r\nAllow: /\r\nUser-agent: *\r\nDisallow: /";
            }
            else if (System.IO.File.Exists(Server.MapPath("~/robots.txt")))
            {
                return(File(Server.MapPath("~/robots.txt"), "text/plain"));
            }
            else
            {
                var settings = _queryExecutor.Get <SeoSettings>();
                robotsTxt += settings.RobotsTxt;

                if (string.IsNullOrEmpty(robotsTxt))
                {
                    Response.StatusCode = 404;
                    return(Content("Not found", "text/plain", Encoding.UTF8));
                }
            }

            return(Content(robotsTxt, "text/plain", Encoding.UTF8));
        }
Exemple #2
0
        public async Task ExecuteAsync(AddMasterCofoundryUserCommand command, IExecutionContext executionContext)
        {
            var settings = _queryExecutor.Get <InternalSettings>();

            if (settings.IsSetup)
            {
                throw new ValidationException("Site is already set up.");
            }

            if (await _dbContext
                .Users
                .FilterCanLogIn()
                .AnyAsync(u => u.Role.SpecialistRoleTypeCode == SpecialistRoleTypeCodes.SuperAdministrator))
            {
                throw new ValidationException("Cannot create a master user when master users already exist in the database.");
            }

            var role = await _dbContext
                       .Roles
                       .SingleOrDefaultAsync(r => r.SpecialistRoleTypeCode == SpecialistRoleTypeCodes.SuperAdministrator);

            EntityNotFoundException.ThrowIfNull(role, SpecialistRoleTypeCodes.SuperAdministrator);

            var userArea = await _dbContext
                           .UserAreas
                           .SingleOrDefaultAsync(a => a.UserAreaCode == CofoundryAdminUserArea.AreaCode);

            var user = MapAndAddUser(command, executionContext, role, userArea);

            await _dbContext.SaveChangesAsync();

            command.OutputUserId = user.UserId;
        }
        public async Task ExecuteAsync(SetupCofoundryCommand command, IExecutionContext executionContext)
        {
            var settings = _queryExecutor.Get <InternalSettings>();

            if (settings.IsSetup)
            {
                throw new ApplicationException("Site is already set up.");
            }

            using (var scope = _transactionScopeFactory.Create())
            {
                var userId = await CreateAdminUser(command);

                var impersonatedUserContext = await GetImpersonatedUserContext(executionContext, userId);

                var settingsCommand = await _queryExecutor.GetAsync <UpdateGeneralSiteSettingsCommand>();

                settingsCommand.ApplicationName = command.ApplicationName;
                await _commandExecutor.ExecuteAsync(settingsCommand, impersonatedUserContext);

                // Take the opportunity to break the cache in case any additional install scripts have been run since initialization
                _objectCacheFactory.Clear();

                // Setup Complete
                await _commandExecutor.ExecuteAsync(new MarkAsSetUpCommand(), impersonatedUserContext);

                scope.Complete();
            }
        }
        protected override void OnActionExecuting(ActionExecutingContext filterContext)
        {
            var settings = _queryExecutor.Get <InternalSettings>();

            if (!settings.IsSetup)
            {
                filterContext.Result = Redirect(SetupRouteLibrary.Urls.Setup());
            }
        }
Exemple #5
0
        public ActionResult Index()
        {
            var settings = _queryExecutor.Get <InternalSettings>();

            if (settings.IsSetup)
            {
                return(RedirectToDashboard());
            }

            // force sign-out - solves a rare case where you're re-initializing a db after being signed into a previous version.
            _loginService.SignOut();

            return(View());
        }
        public Task ExecuteAsync(Controller controller, PageActionRoutingState state)
        {
            var internalSettings = _queryExecutor.Get <InternalSettings>();

            if (!internalSettings.IsSetup)
            {
                var setup = _setupPageActionFactory.GetSetupPageAction(controller);
                if (setup == null)
                {
                    throw new ApplicationException("ISetupPageActionFactory returned no action.");
                }
                state.Result = setup;
            }

            return(Task.FromResult(true));
        }
Exemple #7
0
 public T Get <T>() where T : ICofoundrySettings
 {
     return(_queryExecutor.Get <T>());
 }