Пример #1
0
        /// <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");
        }