Example #1
0
        /// <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);
        }
Example #2
0
 /// <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,
     });
 }