public AutopilotConfiguration(Microsoft.Graph.WindowsAutopilotDeploymentProfile profile, Microsoft.Graph.Organization organization)
        {
            Comment_File = "Offline Autopilot Profile " + profile.DisplayName;

            Version = 2049;

            ZtdCorrelationId = profile.Id;

            if (profile.ODataType.Equals("#microsoft.graph.activeDirectoryWindowsAutopilotDeploymentProfile"))
            {
                CloudAssignedDomainJoinMethod = 1;
            }
            else
            {
                CloudAssignedDomainJoinMethod = 0;
            }

            if (profile.DeviceNameTemplate.Length > 0)
            {
                CloudAssignedDeviceName = profile.DeviceNameTemplate;
            }

            CloudAssignedOobeConfig = 8 + 256;

            if (profile.OutOfBoxExperienceSettings.UserType.Equals("standard"))
            {
                CloudAssignedOobeConfig += 2;
            }

            if ((bool)profile.OutOfBoxExperienceSettings.HidePrivacySettings)
            {
                CloudAssignedOobeConfig += 4;
            }

            if ((bool)profile.OutOfBoxExperienceSettings.HideEULA)
            {
                CloudAssignedOobeConfig += 16;
            }

            if ((bool)profile.OutOfBoxExperienceSettings.SkipKeyboardSelectionPage)
            {
                CloudAssignedOobeConfig += 1024;
            }

            if (profile.OutOfBoxExperienceSettings.DeviceUsageType.Equals("shared"))
            {
                CloudAssignedOobeConfig += 32 + 64;
            }

            if (profile.Language.Length > 0)
            {
                CloudAssignedLanguage = profile.Language;
            }

            if ((bool)profile.OutOfBoxExperienceSettings.HideEscapeLink)
            {
                CloudAssignedForcedEnrollment = 1;
            }
            else
            {
                CloudAssignedForcedEnrollment = 0;
            }

            CloudAssignedTenantId = organization.Id;

            foreach (VerifiedDomain domain in organization.VerifiedDomains)
            {
                if ((bool)domain.IsDefault)
                {
                    CloudAssignedTenantDomain = domain.Name;
                }
            }

            int hideEscapeLink = 0;

            if (profile.OutOfBoxExperienceSettings.HideEscapeLink.HasValue)
            {
                hideEscapeLink = 1;
            }

            // Nest a ZeroTouchConfig within the CloudAssignedAadServerData object -> required for the JSON
            ZeroTouchConfig            touchConfig     = new ZeroTouchConfig(CloudAssignedTenantDomain, hideEscapeLink);
            CloudAssignedAadServerData zeroTouchConfig = new CloudAssignedAadServerData(touchConfig);

            // Serialize ZeroTouchConfig as JSON string
            this.CloudAssignedAadServerData = JsonConvert.SerializeObject(zeroTouchConfig,
                                                                          new JsonSerializerSettings()
            {
                NullValueHandling = NullValueHandling.Ignore
            }
                                                                          );
        }
Esempio n. 2
0
 /// <summary>
 /// Creates the specified Organization using POST.
 /// </summary>
 /// <param name="organizationToCreate">The Organization to create.</param>
 /// <returns>The created Organization.</returns>
 public System.Threading.Tasks.Task <Organization> CreateAsync(Organization organizationToCreate)
 {
     return(this.CreateAsync(organizationToCreate, CancellationToken.None));
 }
 /// <summary>
 /// Adds the specified Organization to the collection via POST.
 /// </summary>
 /// <param name="organization">The Organization to add.</param>
 /// <param name="cancellationToken">The <see cref="CancellationToken"/> for the request.</param>
 /// <returns>The created Organization.</returns>
 public Task <Organization> AddAsync(Organization organization, CancellationToken cancellationToken)
 {
     this.ContentType = "application/json";
     this.Method      = "POST";
     return(this.SendAsync <Organization>(organization, cancellationToken));
 }
Esempio n. 4
0
 /// <summary>
 /// Initializes any collection properties after deserialization, like next requests for paging.
 /// </summary>
 /// <param name="organizationToInitialize">The <see cref="Organization"/> with the collection properties to initialize.</param>
 private void InitializeCollectionProperties(Organization organizationToInitialize)
 {
 }
 /// <summary>
 /// Adds the specified Organization to the collection via POST.
 /// </summary>
 /// <param name="organization">The Organization to add.</param>
 /// <returns>The created Organization.</returns>
 public Task <Organization> AddAsync(Organization organization)
 {
     return(this.AddAsync(organization, CancellationToken.None));
 }