private object apiAddInformer(HttpRequestParams request)
        {
            var name = request.GetRequiredString("name");
            var sensorDisplayId = request.GetRequiredGuid("sensorDisplayId");

            using (var session = Context.OpenSession())
            {
                Informer informer = new Informer()
                {
                    Id = Guid.NewGuid(),
                    Name = name,
                    SensorDisplayId = sensorDisplayId,
                    MonitorsIds = "[]"
                };

                session.Save(informer);
                session.Flush();
            }

            return null;
        }
        private void UpdateInformer(Informer informer)
        {
            if (informer != null)
            {
                var sensorDisplay = mySensors.GetSensor(informer.SensorDisplayId);
                if (sensorDisplay != null)
                {
                    var monitorsIds = informer.GetMonitorsIds();
                    foreach (var monitorId in monitorsIds)
                    {
                        var monitor = monitors.Get(monitorId);
                        if (monitor != null)
                        {
                            var sensor = mySensors.GetSensor(monitor.SensorId);
                            if (sensor != null)
                            {
                                var lineNo = (byte)monitorsIds.IndexOf(monitorId);
                                string property = string.IsNullOrEmpty(monitor.NameForInformer) ? monitor.Name : monitor.NameForInformer;

                                var lastSV = mySensors.GetLastSensorValue(sensor);
                                string value = FormatSensorValue(lastSV);
                                
                                //string value = "--";
                                //if (lastSV != null)
                                //{
                                //    value = lastSV.Value.ToString();

                                //    //var json = string.IsNullOrWhiteSpace(monitor.Configuration) ? "{}" : monitor.Configuration;
                                //    //dynamic config = Extensions.FromJson(json);
                                //    //string valueTemplate = config["series"][0]["tooltip"]["template"];
                                //    //"#= kendo.toString(data.value, 'n1') # °C"
                                //    //"#= kendo.toString(value / 133.3, 'n2') # mmHg"

                                //    //Debug.WriteLine(lineNo + ": " + property);

                                //    //JObject obj = JObject.Parse(json);
                                //    //MyJsonObject[] objArr = JsonConvert.DeserializeObject<MyJsonObject[]>(obj["json"][0]["zayavki"].ToString());
                                //    //foreach (MyJsonObject myJsonObj in objArr)
                                //    //{
                                //    //    Console.WriteLine("Uuid: {0}", myJsonObj.Uuid);
                                //    //    Console.WriteLine("Date: {0}", myJsonObj.Date.ToString("dd/MM/yyyy"));
                                //    //    Console.WriteLine("Comment: {0}", myJsonObj.Comment);
                                //    //    Console.WriteLine("FirmID: {0}", myJsonObj.FirmID);
                                //    //    Console.WriteLine(new string('-', 10));
                                //    //}
                                //}

                                StringBuilder sb = new StringBuilder();
                                sb.AppendFormat("{0}: {1}", property, value);

                                string str = sb.ToString();
                                var fromEncodind = Encoding.UTF8; //из какой кодировки
                                var buf = fromEncodind.GetBytes(str);
                                var toEncoding = Encoding.GetEncoding(866); //в какую кодировку
                                var buf2 = Encoding.Convert(fromEncodind, toEncoding, buf);
                                str = toEncoding.GetString(buf2);

                                mySensors.SetSensorValue(sensorDisplay, lineNo, str);
                            }
                        }
                    }
                }
            }
        }
        public object BuildInformerWebModel(Informer informer)
        {
            if (informer == null)
                return null;

            return new
            {
                Id = informer.Id,
                Name = informer.Name,
                SensorDisplayName = mySensors.GetSensor(informer.SensorDisplayId).Name,
                MonitorsIds = informer.MonitorsIds
            };
        }