Exemple #1
0
        public bool IncrementState(string name, int count = 1)
        {
            lock (_states)
            {
                var entry = _states.Values.FirstOrDefault(e => e.StateName == name);

                if (entry != null)
                {
                    if (entry.StateValue is int)
                    {
                        entry.StateValue = ((int)entry.StateValue) + count;
                    }
                    else
                    {
                        var isInt = int.TryParse((string)entry.StateValue, out var outInt);

                        if (isInt)
                        {
                            outInt          += count;
                            entry.StateValue = outInt;
                        }
                    }

                    _states.Values.RemoveAll(data => data.StateName == name);
                    _states.Values.Add(entry);


                    SaveStates();

                    return(true);
                }
                else
                {
                    entry = new StateEntryData()
                    {
                        StateName  = name,
                        StateValue = count
                    };

                    _states.Values.Add(entry);
                }

                SaveStates();
            }

            return(false);
        }
Exemple #2
0
        public void SetState(string name, object value)
        {
            lock (_states)
            {
                var entry = _states.Values.FirstOrDefault(e => e.StateName == name);

                if (entry == null)
                {
                    entry = new StateEntryData()
                    {
                        StateName = name, StateValue = value
                    };
                    _states.Values.Add(entry);
                }
                else
                {
                    entry.StateValue = value;
                }
            }

            SaveStates();
        }