コード例 #1
0
        /// <summary>
        /// Loads the specified VirtualResourceDetail into the specified EnterpriseScenario.
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="scenario">The <see cref="EnterpriseScenario"/></param>
        /// <param name="detail">The metadata detail</param>
        public void LoadDetail <T>(EnterpriseScenario scenario, T detail) where T : ResourceDetailBase
        {
            VirtualResourceId    = SequentialGuid.NewGuid();
            EnterpriseScenario   = scenario;
            EnterpriseScenarioId = scenario.EnterpriseScenarioId;
            ResourceType         = detail.ResourceType.ToString();
            Name          = detail.Name;
            Description   = detail.Description;
            InstanceCount = detail.InstanceCount;
            Platform      = detail.Platform;
            Enabled       = detail.Enabled;

            foreach (var metadataDetail in detail.MetadataDetails)
            {
                VirtualResourceMetadata metadata = new VirtualResourceMetadata(ResourceType, metadataDetail.MetadataType)
                {
                    VirtualResource           = this,
                    VirtualResourceId         = VirtualResourceId,
                    ExecutionPlan             = GetExecutionPlan(metadataDetail),
                    VirtualResourceMetadataId = metadataDetail.Id,
                    Name            = metadataDetail.Name,
                    Metadata        = metadataDetail.Data,
                    MetadataVersion = metadataDetail.MetadataVersion,
                    Enabled         = metadataDetail.Enabled
                };

                VirtualResourceMetadataSet.Add(metadata);
            }

            LoadChildDetail(detail);
        }
コード例 #2
0
ファイル: LoadTester.cs プロジェクト: ProjectAgri20/newrepo
        private VirtualResource CreateExpandedResource(Collection <ExpandedResourceMetadata> expandedData, int index)
        {
            // First clone this Load Tester resource, then clear it's metadata set.
            VirtualResource resource = this.Clone <LoadTester>();

            resource.VirtualResourceMetadataSet.Clear();

            resource.Name = "{0} [{1}]".FormatWith(resource.Name, index);

            // For each entry in the expanded set, get the metadata item from "this" by the id
            // in the expanded set item, clone it, then update the thread count to the value
            // in the expanded set item, then add the new metadata item to the resource.  Do
            // this for all items in the expanded data.  Then return the resource.
            foreach (var item in expandedData)
            {
                var metadata = VirtualResourceMetadataSet.First(x => x.VirtualResourceMetadataId == item.Id).Clone();

                // Update the execution plan with the correct number of threads and update it with
                // the property thread ramp up information.
                var plan = LegacySerializer.DeserializeDataContract <LoadTesterExecutionPlan>(metadata.ExecutionPlan);
                plan.ThreadCount = item.ThreadCount;

                plan.RampUpSettings = new Collection <RampUpSetting>();
                foreach (var setting in item.RampUpSettings)
                {
                    plan.RampUpSettings.Add(setting);
                }
                metadata.ExecutionPlan = LegacySerializer.SerializeDataContract(plan).ToString();
                resource.VirtualResourceMetadataSet.Add(metadata);
            }

            return(resource);
        }