예제 #1
0
        /// <summary>
        /// Добавление в серию нового значения
        /// </summary>
        /// <param name="seriesID">Идентификатор серии (то значение, которое вернул вызов OpenSeries)</param>
        /// <param name="time">Дата и время значения</param>
        /// <param name="val">Десятичное значение</param>
        /// <param name="sp">Объект параметров визуализации значения</param>
        /// <returns>true - успешно, false - не найден Series по указанному идентификатору</returns>
        public bool AddSeriesValue(int seriesID, DateTime time, decimal val, ISeriesProps sp = null)
        {
            var series = _series.FirstOrDefault(r => r.SeriesID == seriesID);

            if (series == null)
            {
                return(false);
            }

            if (!_series_values.ContainsKey(series))
            {
                _series_values.Add(series, new List <SeriesValue>());
            }
            var vals = _series_values[series];

            var sv = new SeriesValue();

            sv.SeriesValueID = 0;
            sv.SeriesID      = series.SeriesID;
            sv.Time          = time;
            sv.Value         = val;
            sv.Data          = SeriesPropsUtil.Serialize(sp);
            sv.EndTime       = null;
            sv.EndValue      = null;
            vals.Add(sv);

            return(true);
        }
예제 #2
0
        /// <summary>
        /// Открыть серию.
        /// Если серия с указанным ключом уже есть, то возврящается ее временный идентификатор.
        /// Иначе создается новая серия и возвращается ее временный идентификатор.
        /// </summary>
        /// <param name="key">Уникальный ключ (уникальность в пределах счета)</param>
        /// <param name="name">Наименование для показа на экране</param>
        /// <param name="axis">Ось, к которой относится серия</param>
        /// <param name="sp">Объект параметров визуализации значения</param>
        /// <returns>Идентификатор серии (если меньше нуля, то временный)</returns>
        public int OpenSeries(string key, string name = "", SeriesAxis axis = SeriesAxis.AxisX, ISeriesProps sp = null)
        {
            var s = _series.FirstOrDefault(r => r.Key == key);

            if (s != null)
            {
                return(s.SeriesID);
            }

            int id = -1;

            if (_series.Any())
            {
                id = _series.Select(r => r.SeriesID).Min() - 1;
                if (id >= 0)
                {
                    id = -1;
                }
            }

            Series series = new Series();

            series.SeriesID  = id;
            series.Key       = key;
            series.AccountID = 0;
            series.Name      = name;
            series.Axis      = axis;
            series.Data      = SeriesPropsUtil.Serialize(sp);
            _series.Add(series);

            return(series.SeriesID);
        }