//-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
        public override void ViewWillAppear(bool animated)
        {
            base.ViewWillAppear(animated);

            Title         = "Тревоги датчика";
            sensorBorders = new SensorBordersList();
            sensorBorder  = new SensorBorder();

            SetLayout();

            if ((Application.selectedMachine != null) && (Application.selectedMachine.sensors.Count != 0))
            {
                sensor = Application.selectedMachine.sensors[0];
            }

            DataManager.SheduleGetSensorBordersRequest(sensor, DataUpdateCallback);
            SensorIcon.Hidden = true;

            UpdateViewValues();

            Application.StartUpdateTimer(CheckNewData);
        }
        private void DataUpdateCallback(object requestResult)
        {
            if (requestResult is SensorBordersList == false)
            {
                return;
            }

            _sensorBorder = new SensorBorder();

            if (((SensorBordersList)requestResult).list.Count == 0)
            {
                if (_sensor.ID != 0)
                {
                    _sensorBorders = new SensorBordersList
                    {
                        maxSecondsNotOkValue = 1
                    };
                    _sensorBorders.list.Add(new SensorBorder(SensorBorderTypes.Ok, 0, 0));
                    _sensorBorder = _sensorBorders.list[0];
                }

                return;
            }

            _sensorBorders = (SensorBordersList)requestResult;

            foreach (var item in _sensorBorders.list)
            {
                if (item.type == SensorBorderTypes.Ok)
                {
                    _sensorBorder = item;
                    break;
                }
            }

            UpdateViewValuesInUiThread();
        }
        //-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
        public void DataUpdateCallback(object requestResult)
        {
            if ((requestResult is SensorBordersList) == false)
            {
                return;
            }

            sensorBorder = new SensorBorder();

            if (((SensorBordersList)requestResult).list.Count == 0)
            {
                if (sensor.ID != 0)
                {
                    sensorBorders = new SensorBordersList();
                    sensorBorders.maxSecondsNotOkValue = 1;
                    sensorBorders.list.Add(new SensorBorder(SensorBorderTypes.Ok, 0, 0));
                    sensorBorder = sensorBorders.list[0];

                    needDataUpdate++;
                }
                return;
            }

            sensorBorders = (SensorBordersList)requestResult;

            foreach (var item in sensorBorders.list)
            {
                if (item.type == SensorBorderTypes.Ok)
                {
                    sensorBorder = item;
                    break;
                }
            }

            needDataUpdate++;
        }
        protected override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);

            _timerHolder = new TimerHolder(UpdateInterval, UpdateConnectionStatus);

            _sensorBorders = new SensorBordersList();
            _sensorBorder  = new SensorBorder();

            SetContentView(Resource.Layout.activity_sensor_alerts);
            InitActionBar(Resource.String.sensor_alerts);

            FindViewById <TextView>(Resource.Id.tvSave)
            .Click += (sender, args) => Save();
            FindViewById <TextView>(Resource.Id.tvCancel)
            .Click += (sender, args) => Cancel();

            _tvMachineNumber      = FindViewById <TextView>(Resource.Id.tvMachineNumberAlert);
            _ivMachineIcon        = FindViewById <ImageView>(Resource.Id.ivMachineIcon);
            _tvMachineName        = FindViewById <TextView>(Resource.Id.tvMachineNameAlert);
            _tvDivisionName       = FindViewById <TextView>(Resource.Id.tvDescriptionAlert);
            _etToleranceFromValue = FindViewById <EditText>(Resource.Id.etToleranceFromValue);
            _ivSensorIcon         = FindViewById <ImageView>(Resource.Id.ivSensorIcon);
            _etToValue            = FindViewById <EditText>(Resource.Id.etToValue);
            _tvValueSymbolFrom    = FindViewById <TextView>(Resource.Id.tvValueSymbolFrom);
            _tvValueSymbolTo      = FindViewById <TextView>(Resource.Id.tvValueSymbolTo);
            _etHour = FindViewById <EditText>(Resource.Id.etHour);
            _etHour.SetFilters(new IInputFilter[] { new InputFilterLengthFilter(4), new MinMaxInputFilter(0, 9999) });
            _etMin = FindViewById <EditText>(Resource.Id.etMin);
            _etMin.SetFilters(new IInputFilter[] { new InputFilterLengthFilter(2), new MinMaxInputFilter(0, 59) });
            _etSec = FindViewById <EditText>(Resource.Id.etSec);
            _etSec.SetFilters(new IInputFilter[] { new InputFilterLengthFilter(2), new MinMaxInputFilter(0, 59) });

            InitCurrentMachine();
            InitDataUpdating();
        }