/// <summary> /// Constructs the resource /// </summary> private JToken GetResource() { var policyExemption = new PolicyExemption { Name = this.Name, Properties = new PolicyExemptionProperties { DisplayName = this.DisplayName ?? null, Description = this.Description ?? null, ExemptionCategory = this.ExemptionCategory, PolicyAssignmentId = this.PolicyAssignment.PolicyAssignmentId, PolicyDefinitionReferenceIds = this.PolicyDefinitionReferenceId, ExpiresOn = this.ExpiresOn?.ToUniversalTime(), Metadata = this.Metadata == null ? null : this.GetObjectFromParameter(this.Metadata, nameof(this.Metadata)), } }; return(policyExemption.ToJToken()); }
/// <summary> /// Constructs the resource /// </summary> private JToken GetResource(string resourceId, string apiVersion) { var resource = this.GetExistingResource(resourceId, apiVersion).Result.ToResource(); // get incoming object properties if present JObject inputMetadata = null; if (this.InputObject != null) { var newProperties = this.InputObject.Properties?.ToJToken(); inputMetadata = newProperties["metadata"] as JObject; } DateTime?existingExpiration = null; if (DateTime.TryParse(resource.Properties["expiresOn"]?.ToString(), out var expiresOn)) { existingExpiration = expiresOn; } var parameterMetadata = this.Metadata == null ? null : this.GetObjectFromParameter(this.Metadata, nameof(this.Metadata)); var policyExemption = new PolicyExemption { Name = this.Name ?? this.InputObject?.Name ?? resource.Name, Properties = new PolicyExemptionProperties { DisplayName = this.DisplayName ?? this.InputObject?.Properties?.DisplayName ?? resource.Properties["displayName"]?.ToString(), Description = this.Description ?? this.InputObject?.Properties?.Description ?? resource.Properties["description"]?.ToString(), ExemptionCategory = this.ExemptionCategory ?? this.InputObject?.Properties?.ExemptionCategory ?? resource.Properties["exemptionCategory"]?.ToString(), PolicyAssignmentId = resource.Properties["policyAssignmentId"]?.ToString(), PolicyDefinitionReferenceIds = this.PolicyDefinitionReferenceId ?? this.InputObject?.Properties?.PolicyDefinitionReferenceIds ?? resource.Properties["policyDefinitionReferenceIds"]?.ToString()?.Split(','), ExpiresOn = this.ClearExpiration.IsPresent ? null : this.ExpiresOn?.ToUniversalTime() ?? this.InputObject?.Properties?.ExpiresOn ?? existingExpiration, Metadata = parameterMetadata ?? inputMetadata ?? resource.Properties["metadata"] as JObject, } }; return(policyExemption.ToJToken()); }