private bool IsInState(Ticket ticket, string states)
 {
     var result = states.Split(',').Where(x => x.Contains("=")).Select(x => x.Split('=')).Any(x => ticket.IsInState(x[0], x[1]));
     if (!result) result = states.Split(',').Where(x => !x.Contains("=")).Any(x => ticket.IsInState("*", x));
     return result;
 }