/// <summary> /// Extract ownership data from metadata JSON. /// </summary> /// <param name="metadata">Azsk scan metadata.</param> /// <param name="token">A signal to stop processing.</param> /// <returns>list of new ownerships.</returns> private List <OwnershipInfo> ExtractOwnershipFromAzskAudit(MetadataAzure metadata, CancellationToken token) { var ownershipList = new List <OwnershipInfo>(); dynamic json = JsonConvert.DeserializeObject(metadata.JSON, this.jsonSerializerSettings); var resources = json.subscription.resources; foreach (var resource in resources) { if (token.IsCancellationRequested) { return(new List <OwnershipInfo>()); } if (resource == null) { continue; } Resource resourceObj = JsonConvert.DeserializeObject <Resource>(resource.ToString()); ownershipList.Add(new OwnershipInfo { Owner = resourceObj.Owner, ComponentId = resourceObj.ResourceId, ChangeDate = resourceObj.OwnerChangeDate, }); } return(ownershipList); }
/// <summary> /// Creates Azure Metadata entity from internal model. /// </summary> /// <param name="metadata">Internal metadata model.</param> /// <returns>Database compatible entity.</returns> public static MetadataAzureEntity ToEntity(this MetadataAzure metadata) { return(new MetadataAzureEntity { Date = metadata.Date, JSON = metadata.JSON, }); }