public void CanTestTicketState() { var ticket = new Ticket(1); ticket.SetStateValue("Status", "New", ""); var result = ExpressionService.Eval("result = Ticket.IsInState('New')", (new { Ticket = ticket }).ToDynamic(), false); Assert.AreEqual(true, result); result = ExpressionService.Eval("result = Ticket.InState('Status','New')", (new { Ticket = ticket }).ToDynamic(), false); Assert.AreEqual(true, result); ticket.SetStateValue("Status", "Paid", ""); result = ExpressionService.Eval("result = Ticket.InState('Status','New')", (new { Ticket = ticket }).ToDynamic(), false); Assert.AreEqual(false, result); }
public void CanSupportFluentSyntax() { var ticket = new Ticket(1); ticket.SetStateValue("Status", "New", ""); var result = ExpressionService.Eval("result = IsInState Ticket 'New'", (new { Ticket = ticket }).ToDynamic(), false); Assert.AreEqual(true, result); result = ExpressionService.Eval("result = Ticket IsInState 'New'", (new { Ticket = ticket }).ToDynamic(), false); Assert.AreEqual(true, result); result = ExpressionService.Eval("result = Ticket InState 'Status','New'", (new { Ticket = ticket }).ToDynamic(), false); Assert.AreEqual(true, result); }
public void UpdateTicketState(Ticket ticket, string stateName, string currentState, string state, string stateValue, int quantity = 0) { var sv = ticket.GetStateValue(stateName); if (!string.IsNullOrEmpty(currentState) && sv.State != currentState) return; if (sv != null && sv.StateName == stateName && sv.StateValue == stateValue && sv.Quantity == quantity && sv.State == state) return; ticket.SetStateValue(stateName, state, stateValue, quantity); _applicationState.NotifyEvent(RuleEventNames.TicketStateUpdated, new { Ticket = ticket, StateName = stateName, State = state, StateValue = stateValue, Quantity = quantity, TicketState = ticket.GetStateData() }); }