Exemple #1
0
 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);
 }
Exemple #2
0
 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);
 }
Exemple #3
0
        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()
            });
        }