Пример #1
0
        /// <summary>
        /// Finalizes changes to objects to ensure that they have the correct state.
        /// </summary>
        internal void FinalizeChanges()
        {
            foreach (EntityObject entity in this.GetObjectsInState(EntityState.Added | EntityState.Modified).Where(x => x != null))
            {
                // Check modified resources and metadata to see if they have been orphaned
                // If so, change their entity state to Deleted
                VirtualResource resource = entity as VirtualResource;
                if (resource != null && resource.EnterpriseScenarioId == Guid.Empty)
                {
                    DeleteObject(resource);
                    continue;
                }

                VirtualResourceMetadata metadata = entity as VirtualResourceMetadata;
                if (metadata != null && metadata.VirtualResourceId == Guid.Empty)
                {
                    DeleteObject(metadata);
                    continue;
                }

                VirtualResourceMetadataRetrySetting setting = entity as VirtualResourceMetadataRetrySetting;
                if (setting != null && setting.VirtualResourceMetadataId == Guid.Empty)
                {
                    DeleteObject(setting);
                    continue;
                }

                // Check object to see if there are actually any changed properties
                // If nothing has been modified, the state will be changed back to unchanged
                this.CheckIfModified(entity);
            }
        }
Пример #2
0
        private void UpdateDefinition(int rowIndex, PluginResult activityUpdateType)
        {
            ComboBox actionCombo      = (ComboBox)main_TableLayoutPanel.GetControlFromPosition(ACTION_COLUMN, rowIndex);
            TextBox  retryTextBox     = (TextBox)main_TableLayoutPanel.GetControlFromPosition(RETRY_LIMIT_COLUMN, rowIndex);
            var      delayTimeSpan    = (HP.ScalableTest.Framework.UI.TimeSpanControl)main_TableLayoutPanel.GetControlFromPosition(RETRY_DELAY_COLUMN, rowIndex);
            ComboBox retryActionCombo = (ComboBox)main_TableLayoutPanel.GetControlFromPosition(RETRY_ACTION_COLUMN, rowIndex);

            // Add it to all of the configurations
            foreach (var c in _configurations)
            {
                VirtualResourceMetadataRetrySetting retrySetting = new VirtualResourceMetadataRetrySetting();
                retrySetting.SettingId = SequentialGuid.NewGuid();
                retrySetting.State     = activityUpdateType.ToString();
                retrySetting.Action    = actionCombo.Text;
                int limitValue = 0;
                if (!int.TryParse(retryTextBox.Text, out limitValue))
                {
                    limitValue = 0;
                }
                retrySetting.RetryLimit          = limitValue;
                retrySetting.RetryDelay          = Convert.ToInt32(delayTimeSpan.Value.TotalSeconds);
                retrySetting.LimitExceededAction = retryActionCombo.Text;

                c.Metadata.VirtualResourceMetadataRetrySettings.Add(retrySetting);
            }
        }
Пример #3
0
        private void RefreshRow(int rowIndex, VirtualResourceMetadataRetrySetting definition)
        {
            ComboBox actionCombo      = (ComboBox)main_TableLayoutPanel.GetControlFromPosition(ACTION_COLUMN, rowIndex);
            TextBox  retryTextBox     = (TextBox)main_TableLayoutPanel.GetControlFromPosition(RETRY_LIMIT_COLUMN, rowIndex);
            var      delayTimeSpan    = (HP.ScalableTest.Framework.UI.TimeSpanControl)main_TableLayoutPanel.GetControlFromPosition(RETRY_DELAY_COLUMN, rowIndex);
            ComboBox retryActionCombo = (ComboBox)main_TableLayoutPanel.GetControlFromPosition(RETRY_ACTION_COLUMN, rowIndex);

            bool setRetryDefaults = true;

            if (definition != null)
            {
                actionCombo.Text = definition.Action;
                if (definition.Action.Equals(PluginRetryAction.Retry.ToString()))
                {
                    setRetryDefaults      = false;
                    retryTextBox.Text     = definition.RetryLimit.ToString(CultureInfo.CurrentCulture);
                    delayTimeSpan.Value   = new TimeSpan(0, 0, definition.RetryDelay);
                    retryActionCombo.Text = definition.LimitExceededAction;
                }
            }
            else
            {
                actionCombo.SelectedIndex = 0;
            }

            if (setRetryDefaults)
            {
                retryTextBox.Text              = "0";
                delayTimeSpan.Value            = new TimeSpan(0, 0, 0);
                retryActionCombo.SelectedIndex = 0;
            }
        }
Пример #4
0
        /// <summary>
        /// Creates a copy of this <see cref="VirtualResourceMetadata"/>.
        /// </summary>
        /// <returns></returns>
        public VirtualResourceMetadata Copy(bool includeRetrySettings)
        {
            VirtualResourceMetadata metadata = new VirtualResourceMetadata
            {
                VirtualResourceMetadataId = SequentialGuid.NewGuid(),
                Name            = Name,
                ResourceType    = ResourceType,
                MetadataType    = MetadataType,
                Metadata        = Metadata,
                MetadataVersion = MetadataVersion,
                Enabled         = Enabled,
                ExecutionPlan   = ExecutionPlan
            };

            if (this.AssetUsage != null)
            {
                metadata.AssetUsage = new VirtualResourceMetadataAssetUsage();
                metadata.AssetUsage.AssetSelectionData = this.AssetUsage.AssetSelectionData;
            }

            if (this.DocumentUsage != null)
            {
                metadata.DocumentUsage = new VirtualResourceMetadataDocumentUsage();
                metadata.DocumentUsage.DocumentSelectionData = this.DocumentUsage.DocumentSelectionData;
            }

            if (this.ServerUsage != null)
            {
                metadata.ServerUsage = new VirtualResourceMetadataServerUsage();
                metadata.ServerUsage.ServerSelectionData = this.ServerUsage.ServerSelectionData;
            }

            if (this.PrintQueueUsage != null)
            {
                metadata.PrintQueueUsage = new VirtualResourceMetadataPrintQueueUsage();
                metadata.PrintQueueUsage.PrintQueueSelectionData = this.PrintQueueUsage.PrintQueueSelectionData;
            }

            if (includeRetrySettings)
            {
                foreach (var retrySetting in this.VirtualResourceMetadataRetrySettings)
                {
                    VirtualResourceMetadataRetrySetting copiedSetting = new VirtualResourceMetadataRetrySetting
                    {
                        SettingId           = SequentialGuid.NewGuid(),
                        State               = retrySetting.State,
                        Action              = retrySetting.Action,
                        RetryLimit          = retrySetting.RetryLimit,
                        RetryDelay          = retrySetting.RetryDelay,
                        LimitExceededAction = retrySetting.LimitExceededAction
                    };
                    metadata.VirtualResourceMetadataRetrySettings.Add(copiedSetting);
                }
            }

            return(metadata);
        }