Add() public method

public Add ( KeyContainerPermissionAccessEntry accessEntry ) : int
accessEntry KeyContainerPermissionAccessEntry
return int
        /// <summary>Creates a permission that is the union of the current permission and the specified permission.</summary>
        /// <returns>A new permission that represents the union of the current permission and the specified permission.</returns>
        /// <param name="target">A permission to combine with the current permission. It must be of the same type as the current permission. </param>
        /// <exception cref="T:System.ArgumentException">
        ///   <paramref name="target" /> is not null and does not specify a permission of the same type as the current permission. </exception>
        public override IPermission Union(IPermission target)
        {
            KeyContainerPermission keyContainerPermission = this.Cast(target);

            if (keyContainerPermission == null)
            {
                return(this.Copy());
            }
            KeyContainerPermissionAccessEntryCollection keyContainerPermissionAccessEntryCollection = new KeyContainerPermissionAccessEntryCollection();

            foreach (KeyContainerPermissionAccessEntry accessEntry in this._accessEntries)
            {
                keyContainerPermissionAccessEntryCollection.Add(accessEntry);
            }
            foreach (KeyContainerPermissionAccessEntry accessEntry2 in keyContainerPermission._accessEntries)
            {
                if (this._accessEntries.IndexOf(accessEntry2) == -1)
                {
                    keyContainerPermissionAccessEntryCollection.Add(accessEntry2);
                }
            }
            if (keyContainerPermissionAccessEntryCollection.Count == 0)
            {
                return(new KeyContainerPermission(this._flags | keyContainerPermission._flags));
            }
            KeyContainerPermissionAccessEntry[] array = new KeyContainerPermissionAccessEntry[keyContainerPermissionAccessEntryCollection.Count];
            keyContainerPermissionAccessEntryCollection.CopyTo(array, 0);
            return(new KeyContainerPermission(this._flags | keyContainerPermission._flags, array));
        }
        public override IPermission Union(IPermission target)
        {
            KeyContainerPermission kcp = Cast(target);

            if (kcp == null)
            {
                return(Copy());
            }

            KeyContainerPermissionAccessEntryCollection kcpaec = new KeyContainerPermissionAccessEntryCollection();

            // copy first group
            foreach (KeyContainerPermissionAccessEntry kcpae in _accessEntries)
            {
                kcpaec.Add(kcpae);
            }
            // copy second group...
            foreach (KeyContainerPermissionAccessEntry kcpae in kcp._accessEntries)
            {
                // ... but only if not present in first group
                if (_accessEntries.IndexOf(kcpae) == -1)
                {
                    kcpaec.Add(kcpae);
                }
            }

            if (kcpaec.Count == 0)
            {
                return(new KeyContainerPermission((_flags | kcp._flags)));
            }

            KeyContainerPermissionAccessEntry[] list = new KeyContainerPermissionAccessEntry [kcpaec.Count];
            kcpaec.CopyTo(list, 0);
            return(new KeyContainerPermission((_flags | kcp._flags), list));
        }
		public KeyContainerPermission (KeyContainerPermissionFlags flags, KeyContainerPermissionAccessEntry[] accessList) 
		{
			SetFlags (flags);
			if (accessList != null) {
				_accessEntries = new KeyContainerPermissionAccessEntryCollection ();
				foreach (KeyContainerPermissionAccessEntry kcpae in accessList) {
					_accessEntries.Add (kcpae);
				}
			}
		}
Example #4
0
 public KeyContainerPermission(KeyContainerPermissionFlags flags, KeyContainerPermissionAccessEntry[] accessList)
 {
     SetFlags(flags);
     if (accessList != null)
     {
         foreach (KeyContainerPermissionAccessEntry kcpae in accessList)
         {
             _accessEntries.Add(kcpae);
         }
     }
 }
        public KeyContainerPermission (KeyContainerPermissionFlags flags, KeyContainerPermissionAccessEntry[] accessList) {
            if (accessList == null) 
                throw new ArgumentNullException("accessList");
            Contract.EndContractBlock();

            VerifyFlags(flags);
            m_flags = flags;
            m_accessEntries = new KeyContainerPermissionAccessEntryCollection(m_flags);
            for (int index = 0; index < accessList.Length; index++) {
                m_accessEntries.Add(accessList[index]);
            }
        }
        public KeyContainerPermission (KeyContainerPermissionFlags flags, KeyContainerPermissionAccessEntry[] accessList) {
            if (accessList == null) 
                throw new ArgumentNullException("accessList");
            Contract.EndContractBlock();

            VerifyFlags(flags);
            m_flags = flags;
            m_accessEntries = new KeyContainerPermissionAccessEntryCollection(m_flags);
            for (int index = 0; index < accessList.Length; index++) {
                m_accessEntries.Add(accessList[index]);
            }
        }
Example #7
0
		public override IPermission Union (IPermission target)
		{
			KeyContainerPermission kcp = Cast (target);
			if (kcp == null)
				return Copy ();

			KeyContainerPermissionAccessEntryCollection kcpaec = new KeyContainerPermissionAccessEntryCollection ();
			// copy first group
			foreach (KeyContainerPermissionAccessEntry kcpae in _accessEntries) {
				kcpaec.Add (kcpae);
			}
			// copy second group...
			foreach (KeyContainerPermissionAccessEntry kcpae in kcp._accessEntries) {
				// ... but only if not present in first group
				if (_accessEntries.IndexOf (kcpae) == -1)
					kcpaec.Add (kcpae);
			}

			if (kcpaec.Count == 0)
				return new KeyContainerPermission ((_flags | kcp._flags));

			KeyContainerPermissionAccessEntry[] list = new KeyContainerPermissionAccessEntry [kcpaec.Count];
			kcpaec.CopyTo (list, 0);
			return new KeyContainerPermission ((_flags | kcp._flags), list);
		}