public ResponseResource CreateRule(IPrincipal principal, CreateMembershipRuleRequest request)
        {
            var user        = _dependencies.UserService.GetAuthenticatedUser(principal);
            var ruleSection = _dependencies.MembershipRuleSectionService.GetMembershipRuleSection(request.MembershipRuleSectionId);
            var permissions = _dependencies.OrganisationService.GetMemberPermissions(user, ruleSection);

            if (!permissions.Contains(ShurahOrganisationPermission.EditMembershipRules.ToString()))
            {
                return(new ResponseResource {
                    HasError = true, Error = "Access Denied!"
                });
            }
            var rule = new MembershipRule();

            _dependencies.StorageService.SetOf <MembershipRule>().Add(rule);
            rule.MembershipRuleSection   = ruleSection;
            rule.RuleStatement           = request.Rule;
            rule.MembershipRuleSectionId = ruleSection.Id;
            rule.Sequence             = ruleSection.MembershipRules.Count + 2;
            rule.PublishedDateTimeUtc = DateTime.UtcNow;
            _dependencies.StorageService.SaveChanges();
            return(new ResponseResource());
        }
 public ResponseResource Post(CreateMembershipRuleRequest request)
 {
     return(_service.CreateRule(User, request));
 }
Beispiel #3
0
 public HttpResponseMessage Post(CreateMembershipRuleRequest request)
 {
     return(Request.CreateResponse(HttpStatusCode.OK, _service.CreateRule(User, request)));
 }