Example #1
0
        private static void AddEvent(IScribeDatabase database, BloodhoundEvent item, Event parent)
        {
            var entity = item.ToEntity(parent);

            database.Events.Add(entity);
            item.Children.ForEach(x => AddEvent(database, x, entity));
        }
Example #2
0
        private static void AddOrUpdateEvent(IScribeDatabase database, BloodhoundEvent item, Event parent)
        {
            var entity        = item.ToEntity(parent);
            var existingEvent = database.Events.FirstOrDefault(x => x.UniqueId == item.UniqueId);

            if (existingEvent != null)
            {
                existingEvent.Update(entity);
            }
            else
            {
                database.Events.Add(entity);
            }

            item.Children.ForEach(x => AddOrUpdateEvent(database, x, entity));
        }
Example #3
0
        public static Event ToEntity(this Bloodhound.Models.Event item, Event parent = null)
        {
            var response = new Event
            {
                CompletedOn = item.CompletedOn,
                Name        = item.Name,
                Parent      = parent,
                StartedOn   = item.CreatedOn,
                UniqueId    = item.UniqueId,
                Type        = item.Type,
                Values      = item.Values
                              .Where(x => !string.IsNullOrWhiteSpace(x.Value))
                              .Select(x => new EventValue(x.Name, x.Value)).ToList()
            };

            response.Children.AddRange(item.Children.Select(x => ToEntity(x, response)));
            return(response);
        }