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)); }
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)); }
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); }