Esempio n. 1
0
        public override IOperation GetOperation()
        {
            if (!this.IsValid())
            {
                throw new CamlAnalysisException(string.Format(
                                                    "Can't create {0} from the following xml: {1}", typeof(MembershipOpeartion).Name, el));
            }

            var fieldRefElement = el.Elements(Tags.FieldRef).First();
            var typeAttribute   = el.Attributes(Attributes.Type).First();

            var fieldRefOperand = operandBuilder.CreateFieldRefOperand(fieldRefElement);

            Camlex.MembershipType membershipType = null;

            switch (typeAttribute.Value)
            {
            case Camlex.Membership_SPWebAllUsers:
                membershipType = new Camlex.SPWebAllUsers();
                break;

            case Camlex.Membership_SPGroup:
                var groupId = int.Parse(el.Attributes(Attributes.ID).First().Value);
                membershipType = new Camlex.SPGroup(groupId);
                break;

            case Camlex.Membership_SPWebGroups:
                membershipType = new Camlex.SPWebGroups();
                break;

            case Camlex.Membership_CurrentUserGroups:
                membershipType = new Camlex.CurrentUserGroups();
                break;

            case Camlex.Membership_SPWebUsers:
                membershipType = new Camlex.SPWebUsers();
                break;
            }


            return(new MembershipOpeartion(null,
                                           fieldRefOperand, membershipType));
        }
Esempio n. 2
0
 public MembershipOpeartion(IOperationResultBuilder operationResultBuilder, IOperand fieldRefOperand, Camlex.MembershipType membershipType) :
     base(operationResultBuilder)
 {
     this.fieldRefOperand = fieldRefOperand;
     this.membershipType  = membershipType;
 }