예제 #1
0
        protected override void OnCommitting(DomainObjectCommittingEventArgs args)
        {
            base.OnCommitting(args);

            if (Class != null)
            {
                Class.RegisterForCommit();
            }
        }
예제 #2
0
        protected override void OnCommitting(DomainObjectCommittingEventArgs args)
        {
            AccessControlEntryValidationResult result = Validate();

            if (!result.IsValid)
            {
                throw new ConstraintViolationException(result.GetErrorMessage());
            }

            if (State != StateType.Deleted)
            {
                if (TenantCondition != TenantCondition.SpecificTenant)
                {
                    SpecificTenant = null;
                }

                if (TenantCondition != TenantCondition.OwningTenant && TenantCondition != TenantCondition.SpecificTenant)
                {
                    TenantHierarchyCondition = TenantHierarchyCondition.Undefined;
                }

                if (GroupCondition != GroupCondition.SpecificGroup)
                {
                    SpecificGroup = null;
                }

                if (GroupCondition != GroupCondition.AnyGroupWithSpecificGroupType && GroupCondition != GroupCondition.BranchOfOwningGroup)
                {
                    SpecificGroupType = null;
                }

                if (GroupCondition != GroupCondition.OwningGroup && GroupCondition != GroupCondition.SpecificGroup)
                {
                    GroupHierarchyCondition = GroupHierarchyCondition.Undefined;
                }

                if (UserCondition != UserCondition.SpecificUser)
                {
                    SpecificUser = null;
                }

                if (UserCondition != UserCondition.SpecificPosition)
                {
                    SpecificPosition = null;
                }
            }

            base.OnCommitting(args);

            if (Class != null)
            {
                Class.RegisterForCommit();
            }
        }
예제 #3
0
        protected override void OnCommitting(DomainObjectCommittingEventArgs args)
        {
            base.OnCommitting(args);

            var substitutedUserProperty = Properties[typeof(Substitution), "SubstitutedUser"];

            if (substitutedUserProperty.GetValue <User>() != null)
            {
                substitutedUserProperty.GetValue <User>().RegisterForCommit();
            }
            else if (substitutedUserProperty.GetOriginalValue <User>() != null)
            {
                substitutedUserProperty.GetOriginalValue <User>().RegisterForCommit();
            }
        }
예제 #4
0
        protected override void OnCommitting(DomainObjectCommittingEventArgs args)
        {
            base.OnCommitting(args);

            var userProperty = Properties[typeof(Role), "User"];

            if (userProperty.GetValue <User> () != null)
            {
                userProperty.GetValue <User> ().RegisterForCommit();
            }
            else if (userProperty.GetOriginalValue <User>() != null)
            {
                userProperty.GetOriginalValue <User>().RegisterForCommit();
            }

            foreach (var substitution in SubstitutedBy)
            {
                substitution.RegisterForCommit();
            }
        }
예제 #5
0
        protected override void OnCommitting(DomainObjectCommittingEventArgs args)
        {
            SecurableClassValidationResult result = Validate();

            if (!result.IsValid)
            {
                if (result.DuplicateStateCombinations.Count > 0)
                {
                    throw new ConstraintViolationException(
                              String.Format("The securable class definition '{0}' contains at least one state combination that has been defined twice.", Name));
                }
                else
                {
                    Assertion.IsTrue(result.InvalidStateCombinations.Count > 0);
                    throw new ConstraintViolationException(
                              String.Format("The securable class definition '{0}' contains at least one state combination that does not match the class's properties.", Name));
                }
            }

            RegisterForCommit();

            base.OnCommitting(args);
        }
예제 #6
0
        protected override void OnCommitting(DomainObjectCommittingEventArgs args)
        {
            base.OnCommitting(args);

            CheckParentHierarchy();
        }
 public abstract void Committing(object sender, DomainObjectCommittingEventArgs e);