public StateAdmin Clone()
        {
            TestStateAdmin sa = new TestStateAdmin
            {
                ActionAssignToUser                       = this.ActionAssignToUser,
                ActionAssignToUserDefinition             = this.ActionAssignToUserDefinition.Clone(),
                ActionConvertToPDF                       = this.ActionConvertToPDF,
                ActionConvertToPDFDefinition             = this.ActionConvertToPDFDefinition.Clone(),
                ActionCreateSeparateAssignment           = this.ActionCreateSeparateAssignment,
                ActionCreateSeparateAssignmentDefinition = this.ActionCreateSeparateAssignmentDefinition.Clone(),
                ActionDelete                              = this.ActionDelete,
                ActionMarkForArchiving                    = this.ActionMarkForArchiving,
                ActionRunVBScript                         = this.ActionRunVBScript,
                ActionRunVBScriptDefinition               = this.ActionRunVBScriptDefinition,
                ActionSendNotification                    = this.ActionSendNotification,
                ActionSendNotificationDefinition          = this.ActionSendNotificationDefinition.Clone(),
                ActionSetPermissions                      = this.ActionSetPermissions,
                ActionSetPermissionsDetailedDefinition    = this.ActionSetPermissionsDetailedDefinition.Clone(),
                ActionSetProperties                       = this.ActionSetProperties,
                ActionSetPropertiesDefinition             = this.ActionSetPropertiesDefinition.Clone(),
                AutomaticStateTransitionAllowedByVBScript = this.AutomaticStateTransitionAllowedByVBScript,
                AutomaticStateTransitionCriteria          = new SearchConditions()
            };

            for (int i = 1; i <= this.AutomaticStateTransitionCriteria.Count; ++i)
            {
                SearchCondition sc = this.AutomaticStateTransitionCriteria[i];
                sa.AutomaticStateTransitionCriteria.Add(-1, sc.Clone());
            }
            sa.AutomaticStateTransitionInDays    = this.AutomaticStateTransitionInDays;
            sa.AutomaticStateTransitionMode      = this.AutomaticStateTransitionMode;
            sa.AutomaticStateTransitionNextState = this.AutomaticStateTransitionNextState;
            sa.CheckInOutPermissions             = this.CheckInOutPermissions;
            sa.Description         = this.Description;
            sa.ID                  = this.ID;
            sa.InOutPermissions    = this.InOutPermissions.Clone();
            sa.Name                = this.Name;
            sa.Postconditions      = this.Postconditions.Clone();
            sa.Preconditions       = this.Preconditions.Clone();
            sa.RestrictTransitions = this.RestrictTransitions;
            sa.SemanticAliases     = new SemanticAliases {
                Value = this.SemanticAliases.Value
            };
            sa.TransitionsRequireEditAccessToObject = this.TransitionsRequireEditAccessToObject;
            return(sa);
        }
Пример #2
0
        public void Add(int index, StateAdmin stateAdmin)
        {
            TestStateAdmin newState = (stateAdmin as TestStateAdmin) ?? new TestStateAdmin(stateAdmin);

            if (index == -1 || index == States.Count + 1)
            {
                States.Add(newState);
            }
            else if (index > States.Count)
            {
                throw new Exception("Index out of range: " + index);
            }
            else
            {
                // I hate 1 indexing
                States[index - 1] = newState;
            }
        }
Пример #3
0
 internal TestState(TestStateAdmin sa)
 {
     ID   = sa.ID;
     Name = sa.Name;
 }