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