public RestResult Get(int? id, ItemRange range) { if (id.HasValue) { ContentReference currentContentRef = new PageReference(id.Value); if (new ContentReference(id.Value) != null && EPiServer.DataFactory.Instance.Get<IContent>(new ContentReference(id.Value)) as PageData != null) { PageData currentPage = EPiServer.DataFactory.Instance.GetPage(new PageReference(id.Value)); var pageId = currentPage.ContentLink.ID; var _rules = new List<RuleDescription>(); List<Rule> _rulesLeft = RuleEngine.Instance.GetRulesLeft(pageId) as List<Rule>; List<Rule> _rulesRight = RuleEngine.Instance.GetRulesRight(pageId) as List<Rule>; AccessControlList list = currentPage.ACL; foreach (Rule leftRule in _rulesLeft) { RuleDescription rd = new RuleDescription() { RuleName = leftRule.RuleTextLeft, RuleDesc = leftRule.RuleDescriptionLeft, RuleDirection = "left", RuleGuid = leftRule.Id.ExternalId.ToString(), RuleId = leftRule.RuleName }; if (HasAccess(list, leftRule.EditModeAccessLevel) && leftRule.RuleVisibleLeft) _rules.Add(rd); } foreach (Rule rightRule in _rulesRight) { RuleDescription rd = new RuleDescription() { RuleName = rightRule.RuleTextRight, RuleDesc = rightRule.RuleDescriptionRight, RuleDirection = "right", RuleGuid = rightRule.Id.ExternalId.ToString(), RuleId = rightRule.RuleName }; if (HasAccess(list, rightRule.EditModeAccessLevel) && rightRule.RuleVisibleRight && rightRule.RuleTextLeft != rightRule.RuleTextRight) _rules.Add(rd); } /* List<RuleDescription> result = new List<RuleDescription>(); int cnt = 0; foreach (Rule rule in _rules) { bool isLeftRule = (RuleEngine.Instance.IsLeftRule(pageId, RuleEngine.Instance.GetRule(rule.RuleName))); if ((from p in result where p.RuleName == rule.RuleName select p).Any()) result.Add(new RuleDescription() { RuleGuid = rule.Id.ExternalId.ToString(), RuleId = rule.RuleName, RuleDirection = "left", RuleName = rule.RuleTextLeft + "2", RuleDesc = (RuleEngine.Instance.IsLeftRule(pageId, RuleEngine.Instance.GetRule(rule.RuleName))) ? rule.RuleDescriptionLeft : rule.RuleDescriptionRight }); else result.Add(new RuleDescription() { RuleGuid = rule.Id.ExternalId.ToString(), RuleId = rule.RuleName, RuleDirection = "left", RuleName = rule.RuleTextLeft, RuleDesc = (RuleEngine.Instance.IsLeftRule(pageId, RuleEngine.Instance.GetRule(rule.RuleName))) ? rule.RuleDescriptionLeft : rule.RuleDescriptionRight }); cnt++; } foreach (Rule rule in _rulesRight) { bool isLeftRule = (RuleEngine.Instance.IsLeftRule(pageId, RuleEngine.Instance.GetRule(rule.RuleName))); if ((from p in result where p.RuleName == rule.RuleName select p).Any()) result.Add(new RuleDescription() { RuleGuid = rule.Id.ExternalId.ToString(), RuleId = rule.RuleName, RuleDirection = "right", RuleName = rule.RuleTextRight + "2", RuleDesc = (RuleEngine.Instance.IsLeftRule(pageId, RuleEngine.Instance.GetRule(rule.RuleName))) ? rule.RuleDescriptionLeft : rule.RuleDescriptionRight }); else result.Add(new RuleDescription() { RuleGuid = rule.Id.ExternalId.ToString(), RuleId = rule.RuleName, RuleDirection = "right", RuleName = rule.RuleTextRight, RuleDesc = (RuleEngine.Instance.IsLeftRule(pageId, RuleEngine.Instance.GetRule(rule.RuleName))) ? rule.RuleDescriptionLeft : rule.RuleDescriptionRight }); cnt++; } */ return Rest(_rules.Select(m => new { Guid = m.RuleGuid, Name = TryTranslate( m.RuleName), Id = m.RuleId, Description = TryTranslate(m.RuleDesc), Direction = m.RuleDirection })); } } return null; }
public RestResult Get(int?id, ItemRange range) { if (id.HasValue) { ContentReference currentContentRef = new PageReference(id.Value); if (new ContentReference(id.Value) != null && EPiServer.DataFactory.Instance.Get <IContent>(new ContentReference(id.Value)) as PageData != null) { PageData currentPage = EPiServer.DataFactory.Instance.GetPage(new PageReference(id.Value)); var pageId = currentPage.ContentLink.ID; var _rules = new List <RuleDescription>(); List <Rule> _rulesLeft = RuleEngine.Instance.GetRulesLeft(pageId) as List <Rule>; List <Rule> _rulesRight = RuleEngine.Instance.GetRulesRight(pageId) as List <Rule>; AccessControlList list = currentPage.ACL; foreach (Rule leftRule in _rulesLeft) { RuleDescription rd = new RuleDescription() { RuleName = leftRule.RuleTextLeft, RuleDesc = leftRule.RuleDescriptionLeft, RuleDirection = "left", RuleGuid = leftRule.Id.ExternalId.ToString(), RuleId = leftRule.RuleName }; if (HasAccess(list, leftRule.EditModeAccessLevel) && leftRule.RuleVisibleLeft) { _rules.Add(rd); } } foreach (Rule rightRule in _rulesRight) { RuleDescription rd = new RuleDescription() { RuleName = rightRule.RuleTextRight, RuleDesc = rightRule.RuleDescriptionRight, RuleDirection = "right", RuleGuid = rightRule.Id.ExternalId.ToString(), RuleId = rightRule.RuleName }; if (HasAccess(list, rightRule.EditModeAccessLevel) && rightRule.RuleVisibleRight && rightRule.RuleTextLeft != rightRule.RuleTextRight) { _rules.Add(rd); } } /* * * List<RuleDescription> result = new List<RuleDescription>(); * int cnt = 0; * * foreach (Rule rule in _rules) * { * bool isLeftRule = (RuleEngine.Instance.IsLeftRule(pageId, RuleEngine.Instance.GetRule(rule.RuleName))); * if ((from p in result where p.RuleName == rule.RuleName select p).Any()) * result.Add(new RuleDescription() { RuleGuid = rule.Id.ExternalId.ToString(), RuleId = rule.RuleName, RuleDirection = "left", RuleName = rule.RuleTextLeft + "2", RuleDesc = (RuleEngine.Instance.IsLeftRule(pageId, RuleEngine.Instance.GetRule(rule.RuleName))) ? rule.RuleDescriptionLeft : rule.RuleDescriptionRight }); * else * result.Add(new RuleDescription() { RuleGuid = rule.Id.ExternalId.ToString(), RuleId = rule.RuleName, RuleDirection = "left", RuleName = rule.RuleTextLeft, RuleDesc = (RuleEngine.Instance.IsLeftRule(pageId, RuleEngine.Instance.GetRule(rule.RuleName))) ? rule.RuleDescriptionLeft : rule.RuleDescriptionRight }); * cnt++; * } * * foreach (Rule rule in _rulesRight) * { * bool isLeftRule = (RuleEngine.Instance.IsLeftRule(pageId, RuleEngine.Instance.GetRule(rule.RuleName))); * if ((from p in result where p.RuleName == rule.RuleName select p).Any()) * result.Add(new RuleDescription() { RuleGuid = rule.Id.ExternalId.ToString(), RuleId = rule.RuleName, RuleDirection = "right", RuleName = rule.RuleTextRight + "2", RuleDesc = (RuleEngine.Instance.IsLeftRule(pageId, RuleEngine.Instance.GetRule(rule.RuleName))) ? rule.RuleDescriptionLeft : rule.RuleDescriptionRight }); * else * result.Add(new RuleDescription() { RuleGuid = rule.Id.ExternalId.ToString(), RuleId = rule.RuleName, RuleDirection = "right", RuleName = rule.RuleTextRight, RuleDesc = (RuleEngine.Instance.IsLeftRule(pageId, RuleEngine.Instance.GetRule(rule.RuleName))) ? rule.RuleDescriptionLeft : rule.RuleDescriptionRight }); * cnt++; * } */ return(Rest(_rules.Select(m => new { Guid = m.RuleGuid, Name = TryTranslate(m.RuleName), Id = m.RuleId, Description = TryTranslate(m.RuleDesc), Direction = m.RuleDirection }))); } } return(null); }