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")); }
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); } } }