Пример #1
0
        public async Task Record(EventGridEvent eventGridEvent)
        {
            string rowKey       = ParseRowKey(eventGridEvent.Subject);
            var    eventInfo    = new EventInfo(eventGridEvent);
            string partitionKey = eventInfo.ResourceGroup;

            CloudTable table = await GetAuditTable(_storageConnnectionString);

            AuditEntity auditEntity = await GetResource(table, partitionKey, rowKey);

            auditEntity = PopulateAuditEntity(eventGridEvent, rowKey, eventInfo, partitionKey, auditEntity);

            var insertMergeOp = TableOperation.InsertOrMerge(auditEntity);
            await table.ExecuteAsync(insertMergeOp);
        }
Пример #2
0
        private static AuditEntity PopulateAuditEntity(
            EventGridEvent eventGridEvent,
            string rowKey,
            EventInfo eventInfo,
            string partitionKey,
            AuditEntity auditEntity)
        {
            if (auditEntity == null)
            {
                auditEntity = new AuditEntity(partitionKey, rowKey);

                if (!eventGridEvent.EventType.Contains("Delete"))
                {
                    auditEntity.CreatedBy = eventInfo.By;
                    auditEntity.CreatedDt = eventGridEvent.EventTime;
                }
            }
            else
            {
                if (!eventGridEvent.EventType.Contains("Delete"))
                {
                    auditEntity.UpdatedBy = eventInfo.By;
                    auditEntity.UpdatedDt = eventGridEvent.EventTime;
                    auditEntity.NoOfUpdates++;
                }
            }

            auditEntity.ResourceGroup = eventInfo.ResourceGroup;
            auditEntity.Provider      = eventInfo.ResourceProvider;
            auditEntity.Subscription  = eventInfo.Subscription;
            auditEntity.Subject       = eventGridEvent.Subject;
            auditEntity.Resource      = eventInfo.Resource;
            auditEntity.EventType     = eventGridEvent.EventType;

            if (eventGridEvent.EventType.Contains("Delete"))
            {
                auditEntity.DeletedBy = eventInfo.By;
                auditEntity.DeletedDt = eventGridEvent.EventTime;
            }

            return(auditEntity);
        }