Ejemplo n.º 1
0
        public ActionResult ExportVisitorGroups(ConfigurationViewModel model)
        {
            if (model.SelectedVisitorGroupItems?.Count() == 0)
            {
                model = GetConfigurationViewModel();
                ModelState.AddModelError(nameof(model.SelectedVisitorGroupItems), "SelectedVisitorGroups is required.");
                return(View("Index", model));
            }

            var visitorGroupData = VisitorGroupRepository.List().Where(x => model.SelectedVisitorGroupItems.Contains(x.Id.ToString())).ToList();
            var stream           = _contentExportProcessor.ExportEpiserverVisitorGroup(visitorGroupData);

            if (model.VisitorGroupExportLocation.Equals("Remote", StringComparison.InvariantCultureIgnoreCase))
            {
                var fileName = model.VisitorGroupName.IsNullOrEmpty() ? "visitorgroup.episerverdata" : model.VisitorGroupName;
                if (!fileName.EndsWith(".episerverdata", StringComparison.InvariantCultureIgnoreCase))
                {
                    fileName += ".episerverdata";
                }

                StorageService.Add($"VisitorGroups/{fileName}", stream, stream.Length);
                return(RedirectToAction("Index"));
            }

            return(File(stream, "application/octet-stream", "visitorgroup.episerverdata"));
        }
Ejemplo n.º 2
0
        public string CreateKeyFragment(HtmlHelper htmlHelper, IContent content, ICacheableSettings cacheableSettings)
        {
            var user = htmlHelper.ViewContext?.HttpContext?.User;

            if (cacheableSettings.Parameters.TryGetValue(SupportedVaryBy, out string value) && user != null)
            {
                var parameters = value.Split(',').Select(p => p.Trim());
                if (parameters.FirstOrDefault() == "*")
                {
                    return(string.Join(",", GetActiveRoles(VisitorGroupRepository.List().Select(vg => vg.Name))));
                }

                return(string.Join(",", GetActiveRoles(parameters)));
            }

            return(string.Empty);

            IEnumerable <string> GetActiveRoles(IEnumerable <string> roles)
            {
                foreach (var role in roles.Where(r => VisitorGroupService.IsUserInVisitorGroup(user, r, htmlHelper.ViewContext.HttpContext)))
                {
                    yield return(role);
                }
            }
        }