public int TicketId { get; set; }
public string SubmittedBy { get; set; }
public string Category { get; set; }
public string Priority { get; set; }
public string Description { get; set; }
public List<string> Tags { get; set; }
public List<string> Attachments { get; set; }
public DateTime SubmittedAt { get; set; }
public string Status { get; set; }
public string AssignedTo { get; set; }
public string ResolvedBy { get; set; }
public DateTime ResolvedAt { get; set; }
public static List<Ticket> Tickets = new List<Ticket>();
public static List<Ticket> SearchAndFilterTickets(string searchTerm, string category, string priority, string assignedTo)
searchTerm = searchTerm?.Trim();
category = category?.Trim();
priority = priority?.Trim();
assignedTo = assignedTo?.Trim();
var filteredTickets = Tickets.Where(ticket =>
(string.IsNullOrEmpty(searchTerm) || ticket.Description.Contains(searchTerm)) &&
(string.IsNullOrEmpty(category) || ticket.Category.Equals(category, StringComparison.OrdinalIgnoreCase)) &&
(string.IsNullOrEmpty(priority) || ticket.Priority.Equals(priority, StringComparison.OrdinalIgnoreCase)) &&
(string.IsNullOrEmpty(assignedTo) || ticket.AssignedTo.Equals(assignedTo, StringComparison.OrdinalIgnoreCase))