using System; using Telerik.Sitefinity.Personalization.Impl.Model; using Telerik.Sitefinity.Security; namespace SitefinityWebApp.Documentation.Samples.Personalization { public class PersonalizationApi_Roles { /// <summary> /// Creates a criterion for roles /// </summary> /// <param name="roleName">The name of the role</param> /// <param name="isNegated">Whether the criterion is negated.</param> /// <returns>Criterion instance</returns> public Criterion CreateRoleCriterion(string roleName, bool isNegated = false) { var roleId = GetRoleId(roleName); string criterionValue = "{\"SelectedRoles\":[{\"Id\":\"" + roleId + "\",\"Title\":\"" + roleName + "\"}]}"; Criterion criterion = new Criterion() { CriterionName = "Roles", CriterionValue = criterionValue, CriterionDisplayValue = roleName, CriterionTitle = "Roles", IsNegated = isNegated }; return criterion; } /// <summary> /// Get the role Guid /// </summary> /// <param name="roleName">Name of the role</param> /// <returns>The role Guid</returns> public Guid GetRoleId(string roleName) { RoleManager manager = RoleManager.GetManager("AppRoles"); var role = manager.GetRole(roleName); return role.Id; } } }