コード例 #1
0
        public ActionResult Index()
        {
            if (!Services.Authorizer.Authorize(StandardPermissions.SiteOwner, T("Not authorized to manage settings")))
            {
                return(new HttpUnauthorizedResult());
            }

            var part = Services.WorkContext.CurrentSite.As <MemcachedSettingsPart>();

            var viewModel = new MemcachedSettingsViewModel {
                Servers = part.Servers
            };

            return(View(viewModel));
        }
コード例 #2
0
        public ActionResult IndexPost()
        {
            if (!Services.Authorizer.Authorize(StandardPermissions.SiteOwner, T("Not authorized to manage settings")))
            {
                return(new HttpUnauthorizedResult());
            }

            var viewModel = new MemcachedSettingsViewModel();
            var part      = Services.WorkContext.CurrentSite.As <MemcachedSettingsPart>();

            bool valid = false;

            if (TryUpdateModel(viewModel))
            {
                if (!String.IsNullOrEmpty(viewModel.Servers))
                {
                    using (var urlReader = new StringReader(viewModel.Servers)) {
                        string relativeUrl;
                        // ignore empty lines and comments (#)
                        while (null != (relativeUrl = urlReader.ReadLine()))
                        {
                            if (String.IsNullOrWhiteSpace(relativeUrl) || relativeUrl.Trim().StartsWith("#"))
                            {
                                continue;
                            }

                            valid = true;
                        }
                    }
                }

                // invalidate the cache
                _signals.Trigger(MemcachedSettingsPart.CacheKey);

                part.Servers = viewModel.Servers;
            }

            if (!valid)
            {
                AddModelError("Servers", T("At least one server must be provided."));
                Services.TransactionManager.Cancel();
            }

            return(Index());
        }