public async Task <TargetEventsComponentModel> BuildTargetModelAsync(Guid siteId, Guid id) { var events = await _dbContext.Events .Include(x => x.User) .Where(x => x.SiteId == siteId && x.TargetId == id) .OrderByDescending(x => x.TimeStamp) .ToListAsync(); if (events.Count == 0) { return(new TargetEventsComponentModel()); } var result = new TargetEventsComponentModel { Id = events[0].TargetId, Type = events[0].TargetType }; foreach (var @event in events) { var model = new TargetEventsComponentModel.EventModel { Id = @event.Id, Type = @event.Type, TimeStamp = @event.TimeStamp, UserId = @event.UserId, UserName = @event.User?.DisplayName ?? "<system>" }; if (!string.IsNullOrWhiteSpace(@event.Data) && @event.Data != "null") { var parsedData = JObject.Parse(@event.Data); var data = new Dictionary <string, string>(); foreach (var x in parsedData) { if (x.Key != nameof(@event.Id) && x.Key != nameof(@event.TargetId) && x.Key != nameof(@event.TargetType) && x.Key != nameof(@event.SiteId) && x.Key != nameof(@event.UserId)) { var value = !string.IsNullOrWhiteSpace(x.Value.ToString()) ? x.Value.ToString() : "<null>"; data.Add(x.Key, value); } } model.Data = data; } result.Events.Add(model); } return(result); }
protected override async Task OnParametersSetAsync() { Model = await ApiService.GetFromJsonAsync <TargetEventsComponentModel>($"api/admin/events/target-model/{Id}"); }