Пример #1
0
        /// <summary>
        /// Проверка введенных данных и их сохранение в БД
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void SaveButton_Click(object sender, EventArgs e)
        {
            //Проверка на заполненность всех полей
            if (sourceBox.SelectedIndex < 0 ||
                sensorBox.SelectedIndex < 0 ||
                paramBox.SelectedIndex < 0 ||
                string.IsNullOrWhiteSpace(valueBox.Text))
            {
                MessageBox.Show("Заполните все поля", "Ошибка ввода",
                                MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            else
            {
                //Выбранный источник
                var src = (Source)sourceBox.SelectedItem;
                //Выбранный датчик
                var snr = (Sensor)sensorBox.SelectedItem;
                snr.Parent_source_uuid = src.Source_uuid;

                //Проверка датчика на неисправеность
                if (snr.State != "OK")
                {
                    MessageBox.Show("Датчик неисправен. Статус: " + snr.State, "Ошибка",
                                    MessageBoxButtons.OK, MessageBoxIcon.Error);
                    return;
                }

                //Выбранный параметр
                var prm = (Parameter)paramBox.SelectedItem;
                prm.Parent_sensor_uuid = snr.Sensor_uuid;

                //Введенное значение параметра
                string  vbText = valueBox.Text;
                dynamic val    = null;

                //Создание объекта "Значение" в зависимости от типа значения параметра
                switch (prm.Type)
                {
                case "string":
                    switch (vbText.ToUpper())
                    {
                    case "OK":
                    case "ERROR":
                    case "MAINTENANCE":
                        val = new Value <string>()
                        {
                            Value_uuid            = UUIDGenerator.RandomID(),
                            Timestamp_start       = 0,
                            Timestamp_end         = 1,
                            Parent_parameter_uuid = prm.Parameter_uuid,
                            Data = vbText.ToUpper()
                        };
                        break;

                    default:
                        MessageBox.Show("Некорректное значение параметра", "Ошибка ввода",
                                        MessageBoxButtons.OK, MessageBoxIcon.Error);
                        break;
                    }
                    break;

                case "float":
                    try
                    {
                        val = new Value <float>()
                        {
                            Value_uuid            = UUIDGenerator.RandomID(),
                            Timestamp_start       = 0,
                            Timestamp_end         = 1,
                            Parent_parameter_uuid = prm.Parameter_uuid,
                            Data = float.Parse(vbText, CultureInfo.InvariantCulture)
                        };
                    }
                    catch (Exception)
                    {
                        MessageBox.Show("Некорректное значение параметра", "Ошибка ввода",
                                        MessageBoxButtons.OK, MessageBoxIcon.Error);
                        break;
                    }
                    break;
                }
                ;

                //Данные введены корректно
                //Можно работать с объектами:
                //  -> src (Источник выбросов)
                //  -> snr (Датчик)
                //  -> prm (Параметер)
                //  -> val (Значение параметра)

                //Здесь реализуется запись в БД
            }
        }
Пример #2
0
        public ComboBoxData()
        {
            sources    = new List <Source>();
            sensors    = new List <Sensor>();
            parameters = new List <Parameter>();

            //Добавляем источники
            sources.Add(new Source()
            {
                Source_uuid = UUIDGenerator.RandomID(),
                Pniv        = 1
            });

            //Добавляем сенсоры
            sensors.Add(new Sensor()
            {
                Sensor_uuid = UUIDGenerator.RandomID(),
                State       = "OK"
            });
            sensors.Add(new Sensor()
            {
                Sensor_uuid = UUIDGenerator.RandomID(),
                State       = "MAINTENANCE"
            });

            //Добавляем параметры
            parameters.Add(new Parameter()
            {
                Parameter_uuid = UUIDGenerator.RandomID(),
                Code           = "H2SkgPerHour",
                Unit           = "kgPH",
                Type           = "float"
            });
            parameters.Add(new Parameter()
            {
                Parameter_uuid = UUIDGenerator.RandomID(),
                Code           = "SO2kgPerHour",
                Unit           = "kgPH",
                Type           = "float"
            });
            parameters.Add(new Parameter()
            {
                Parameter_uuid = UUIDGenerator.RandomID(),
                Code           = "SuspendedParticulateskgPerHour",
                Unit           = "kgPH",
                Type           = "float"
            });
            parameters.Add(new Parameter()
            {
                Parameter_uuid = UUIDGenerator.RandomID(),
                Code           = "NOxkgPerHour",
                Unit           = "kgPH",
                Type           = "float"
            });
            parameters.Add(new Parameter()
            {
                Parameter_uuid = UUIDGenerator.RandomID(),
                Code           = "COxFuelkgPerHour",
                Unit           = "kgPH",
                Type           = "float"
            });
            parameters.Add(new Parameter()
            {
                Parameter_uuid = UUIDGenerator.RandomID(),
                Code           = "COxkgPerHour",
                Unit           = "kgPH",
                Type           = "float"
            });
            parameters.Add(new Parameter()
            {
                Parameter_uuid = UUIDGenerator.RandomID(),
                Code           = "HFkgPerHour",
                Unit           = "kgPH",
                Type           = "float"
            });
            parameters.Add(new Parameter()
            {
                Parameter_uuid = UUIDGenerator.RandomID(),
                Code           = "HClkgPerHour",
                Unit           = "kgPH",
                Type           = "float"
            });
            parameters.Add(new Parameter()
            {
                Parameter_uuid = UUIDGenerator.RandomID(),
                Code           = "NH3kgPerHour",
                Unit           = "kgPH",
                Type           = "float"
            });
            parameters.Add(new Parameter()
            {
                Parameter_uuid = UUIDGenerator.RandomID(),
                Code           = "ElectronicSealState",
                Unit           = "State",
                Type           = "string"
            });
        }