/// <summary> /// Creates resource detail and inserts it into the manifest. /// </summary> /// <param name="resources">The resources.</param> /// <param name="manifest">The manifest.</param> internal override void AddToManifest(Collection <VirtualResource> resources, SystemManifest manifest) { var resource = resources.First(); MachineReservationDetail detail = manifest.Resources.GetResource <MachineReservationDetail>(resource.VirtualResourceId); if (detail == null) { detail = CreateDetail(resource); manifest.Resources.Add(detail); } // Add installers to the manifest that are specific to this instance of the Machine Reservation MachineReservationMetadata metadata = LegacySerializer.DeserializeXml <MachineReservationMetadata>(resource.VirtualResourceMetadataSet.First().Metadata); if (metadata.PackageId != Guid.Empty) { using (EnterpriseTestContext context = new EnterpriseTestContext()) { int i = 1; foreach (var installer in SelectSoftwareInstallers(context, metadata.PackageId)) { TraceFactory.Logger.Debug("Adding {0}".FormatWith(installer.Description)); manifest.SoftwareInstallers.Add(CreateSoftwareInstallerDetail(installer, i++)); } } } }
/// <summary> /// Initializes this instance with the specified object. /// </summary> /// <param name="entity">The entity.</param> /// <exception cref="ControlTypeMismatchException"> /// Thrown when an object of incorrect type is passed to this instance. /// </exception> public override void Initialize(object entity) { _reservation = entity as VirtualResource; AddMetadataIfMissing(_reservation); if (_reservation == null) { throw new ControlTypeMismatchException(entity, typeof(VirtualResource)); } platform_ComboBox.SetPlatform(_reservation.Platform, VirtualResourceType.MachineReservation); var metadata = _reservation.VirtualResourceMetadataSet.FirstOrDefault(); if (metadata != null) { _reservationData = LegacySerializer.DeserializeXml <MachineReservationMetadata>(metadata.Metadata); } else { _reservationData = new MachineReservationMetadata(); } var package = SoftwareInstallerPackage.CreateSoftwareInstallerPackage(Guid.Empty); package.Description = "None"; package_ComboBox.Items.Add(package); using (EnterpriseTestContext context = new EnterpriseTestContext()) { List <SoftwareInstallerPackage> list = new List <SoftwareInstallerPackage>(); list.Add(package); list.AddRange(context.SoftwareInstallerPackages.OrderBy(n => n.Description)); package_ComboBox.DataSource = list; package_ComboBox.DisplayMember = "Description"; package_ComboBox.ValueMember = "PackageId"; package_ComboBox.SelectedItem = list.FirstOrDefault(e => e.PackageId == _reservationData.PackageId); } // Set up data bindings name_TextBox.DataBindings.Add("Text", _reservation, "Name"); description_TextBox.DataBindings.Add("Text", _reservation, "Description"); platform_ComboBox.DataBindings.Add("SelectedValue", _reservation, "Platform"); instanceCount_NumericUpDown.DataBindings.Add("Text", _reservation, "InstanceCount"); package_ComboBox.DataBindings.Add("SelectedValue", _reservationData, "PackageId"); }