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; }