/// <summary>
 /// Adds in drawInSensorData list
 /// </summary>
 /// <param name="sensor">sensor to be added in sensor log</param>
 public void AddSensorLogData(SensorOption.Sensor sensor)
 {
     if (sensor != null)
     {
         this.SensorsLog.Add(sensor);
     }
 }
        /// <summary>
        /// Remove sensor from chart graph
        /// </summary>
        /// <param name="sensor">Which sensor is going to be removed</param>
        public void RemoveSensorFromGraph(SensorOption.Sensor sensor)
        {
            this.SensorList.Remove(sensor);

            LineSeries ls = null;

            for (int i = 0; i < this.SeriesCollection.Count; i++)
            {
                LineSeries aux = (LineSeries)this.SeriesCollection[i];

                if (aux.Tag.ToString() == sensor.Id)
                {
                    ls = aux;
                    break;
                }
            }

            if (ls != null)
            {
                this.SeriesCollection.Remove(ls);
            }
        }
        /// <summary>
        /// Add sensor in linesgraph
        /// </summary>
        /// <param name="sensor">sensor to add</param>
        public void AddSensorToGraph(SensorOption.Sensor sensor)
        {
            Color nextColor = this.GetNextDefaultColor();

            LineSeries newLs = new LineSeries
            {
                Title  = sensor.SensorName,
                Values = new ChartValues <DateModel>(),
                Tag    = sensor.Id,
                Fill   = new SolidColorBrush(nextColor)
                {
                    Opacity = 0.15d
                }
            };

            Brush textBrush = newLs.Fill.Clone();

            textBrush.Opacity = 1d;

            this.SensorList.Add(sensor);
            this.SeriesCollection.Add(newLs);
        }
        /// <summary>
        /// Show loaded sensors when load windows
        /// </summary>
        /// <param name="sensorList">Sensor list</param>
        /// <param name="analysisName">Analysis name</param>
        public void ShowLoadedSensors(ObservableCollection <SensorOption.Sensor> sensorList, string analysisName)
        {
            ObservableCollection <SensorOption.Sensor> list = new ObservableCollection <SensorOption.Sensor>();

            foreach (SensorOption.Sensor sensor in sensorList)
            {
                Color nextColor = this.GetNextDefaultColor();

                LineSeries newLs = new LineSeries
                {
                    Title  = sensor.SensorName,
                    Values = new ChartValues <DateModel>(),
                    Tag    = sensor.Id,
                    Fill   = new SolidColorBrush(nextColor)
                    {
                        Opacity = 0.15d
                    }
                };

                Brush textBrush = newLs.Fill.Clone();
                textBrush.Opacity = 1d;

                SensorOption.Sensor newSensor = new SensorOption.Sensor(sensor.SensorName, sensor.X, sensor.Y, sensor.Z);
                newSensor.Id = sensor.Id;

                this.SensorList.Add(newSensor);

                int index = this.SensorList.IndexOf(newSensor);

                if (sensor.Values != null)
                {
                    ObservableCollection <SensorOption.Sensor> asd = new ObservableCollection <SensorOption.Sensor>();

                    foreach (SensorOption.SensorValue v in sensor.Values)
                    {
                        if (v.AnalysisName == analysisName)
                        {
                            DateModel dm = new DateModel()
                            {
                                DateTime = v.Timestamp, Value = v.Value
                            };

                            // Chart
                            if (v.Parameter != this.parameterString)
                            {
                                newLs.Values.Add(dm);
                            }

                            // Update Log
                            SensorOption.Sensor s = new SensorOption.Sensor(sensor.SensorName);
                            s.Values.Add(v);
                            list.Add(s);

                            // Sensor List
                            this.SensorList.ElementAt(index).Values.Add(v);
                        }
                    }
                }

                if (newLs.Values.Count > 0)
                {
                    this.AxisMin = ((DateModel)newLs.Values[0]).DateTime.Ticks;
                    this.AxisMax = ((DateModel)newLs.Values[newLs.Values.Count - 1]).DateTime.Ticks;
                }

                list            = new ObservableCollection <SensorOption.Sensor>(list.OrderBy(a => a.Values[0].Timestamp));
                this.SensorsLog = list;
                this.SeriesCollection.Add(newLs);
            }
        }