Exemplo n.º 1
0
        public void SetStateValue(string stateName, string state, string stateValue, string quantityDef = "")
        {
            var sv = TicketStateValues.SingleOrDefault(x => x.StateName == stateName);

            if (sv == null)
            {
                sv = new TicketStateValue {
                    StateName = stateName, State = state, StateValue = stateValue
                };
                TicketStateValues.Add(sv);
            }
            else
            {
                sv.State      = state;
                sv.StateValue = stateValue;
            }
            sv.Quantity       = QuantityFuncParser.Parse(quantityDef, sv.Quantity);
            sv.LastUpdateTime = DateTime.Now;

            if (string.IsNullOrEmpty(sv.State))
            {
                TicketStateValues.Remove(sv);
            }

            TicketStates       = JsonHelper.Serialize(TicketStateValues);
            _ticketStateValues = null;
        }
Exemplo n.º 2
0
        public void SetStateValue(string groupName, string state, string quantityExp)
        {
            var sv = EntityStateValues.SingleOrDefault(x => x.StateName == groupName);

            if (sv == null)
            {
                sv = new EntityStateVal {
                    StateName = groupName, State = state
                };
                EntityStateValues.Add(sv);
            }
            else
            {
                sv.State = state;
            }
            sv.Quantity       = QuantityFuncParser.Parse(quantityExp, sv.Quantity);
            sv.LastUpdateTime = DateTime.Now;

            if (string.IsNullOrEmpty(sv.State))
            {
                EntityStateValues.Remove(sv);
            }

            EntityStates       = JsonHelper.Serialize(EntityStateValues);
            _entityStateValues = null;
        }
Exemplo n.º 3
0
        public void SetCustomData(string fieldName, string value)
        {
            value = QuantityFuncParser.Parse(value, GetCustomData(fieldName));
            value = DateFuncParser.Parse(value, GetCustomData(fieldName));
            var list = JsonHelper.Deserialize <List <CustomDataValue> >(CustomData);

            if (list.All(x => x.Name != fieldName))
            {
                list.Add(new CustomDataValue {
                    Name = fieldName
                });
            }
            list.Single(x => x.Name == fieldName).Value = value;
            CustomData = JsonHelper.Serialize(list);
        }
Exemplo n.º 4
0
        public void UpdateTicketState(Ticket ticket, string stateName, string currentState, string state, string stateValue, string quantity = "")
        {
            var sv = ticket.GetStateValue(stateName);

            if (!string.IsNullOrEmpty(currentState) && sv.State != currentState)
            {
                return;
            }
            if (sv != null && sv.StateName == stateName && sv.StateValue == stateValue && sv.State == state && sv.Quantity == QuantityFuncParser.Parse(quantity, sv.Quantity))
            {
                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(x => true)
            });
        }