// Copyright Epic Games, Inc. All Rights Reserved. using System.Collections.Generic; using EpicGames.Core; using Microsoft.Extensions.Logging; namespace EpicGames.Horde.Issues.Handlers { /// /// Instance of a particular compile error /// [IssueHandler] public class ContentIssueHandler : IssueHandler { readonly List _issues = new List(); static bool IsMatchingEventId(EventId eventId) => eventId == KnownLogEvents.Engine_AssetLog; static bool IsMaskedEventId(EventId eventId) => eventId == KnownLogEvents.ExitCode; /// public override int Priority => 10; /// public override bool HandleEvent(IssueEvent issueEvent) { if (issueEvent.EventId != null) { EventId eventId = issueEvent.EventId.Value; if (IsMatchingEventId(eventId)) { IssueEventGroup issue = new IssueEventGroup("Content", "{Severity} in {Files}", IssueChangeFilter.Content); issue.Events.Add(issueEvent); issue.Keys.AddAssets(issueEvent); _issues.Add(issue); return true; } else if (_issues.Count > 0 && IsMaskedEventId(eventId)) { return true; } } return false; } /// public override IEnumerable GetIssues() => _issues; } }