Enhance event occurrence parsing with detailed issue reporting and location configuration

This commit introduces a new structure for handling parsing issues in the EventOccurrenceParser, allowing for detailed reporting of parsing problems such as unmatched lines, missing event definitions, and parsing failures for time, date, and location. A new ParsingIssue class has been added to encapsulate these details. Additionally, a LocationParsingConfiguration class has been implemented to support customizable location patterns, enhancing the flexibility of the parser. The EventOccurrenceParserService has been updated to utilize this configuration, and new tests have been added to ensure robust issue detection and reporting. Furthermore, the UI has been updated to display parsing issues, improving user feedback during the import process.
This commit is contained in:
2026-01-06 23:08:42 -05:00
parent c73fdbfba4
commit 2d3b29176f
12 changed files with 1189 additions and 40 deletions
@@ -0,0 +1,31 @@
namespace Core.Models;
/// <summary>
/// Configuration for location parsing patterns used in event occurrence parsing.
/// Supports venue-specific room naming conventions.
/// </summary>
public class LocationParsingConfiguration
{
/// <summary>
/// List of location prefix patterns (e.g., ["Room *", "Hall *", "Conference Room *"]).
/// Patterns use "*" as wildcard to match any text after the prefix.
/// </summary>
public List<string> LocationPatterns { get; set; } = new();
/// <summary>
/// Default location parsing configuration with common patterns.
/// </summary>
public static LocationParsingConfiguration Default => new()
{
LocationPatterns = new List<string>
{
"Room *",
"Hall *",
"Conference Room *",
"Building *",
"Auditorium *"
}
};
}