private void GetData(GenerateDiary form)
        {
            using (FileStream fsr = new FileStream("Weather.json", FileMode.OpenOrCreate))
            {
                classExemps = (List <WeatherConditions>)jsonFormatter.ReadObject(fsr);
            }

            dataGridView1.Columns.Clear();


            iewc = from c in classExemps where c.choosedDate == form.StartDatePicker.Value select c;
            //генерация по дате
            if (form.DateRadioBTN.Checked)
            {
                iewc = from c in classExemps where c.choosedDate == form.StartDatePicker.Value select c;
            }
            //по месту наблюдения
            else if (form.PlaceRadioBTN.Checked)
            {
                iewc = from c in classExemps where c.watchPlace == form.WatchPlacetextBox.Text select c;
            }
            //по времени года
            else if (form.SeasonRadioBTN.Checked)
            {
                iewc = from c in classExemps where c.season == form.SeasonBox.SelectedItem.ToString() select c;
            }
            //по времени наблюдения
            else if (form.TimeRadioBTN.Checked)
            {
                iewc = from c in classExemps where c.time == form.TimeMTBox.Text select c;
            }
            //по погодным условиям
            else if (form.WeatherRadioBTN.Checked)
            {
                WeatherConditionsMode(form);
            }
            //по промежутку времени
            else if (form.DateGapRadioBTN.Checked)
            {
                iewc = from c in classExemps where c.choosedDate >= form.StartDatePicker.Value && c.choosedDate <= form.EndDatePicker.Value select c;
            }

            FillDataGrid(iewc.ToList <WeatherConditions>());
        }
Exemple #2
0
        //при клике на кнопку "генерация" открывается новая форма
        private void GenerateButton_Click(object sender, EventArgs e)
        {
            fileInf = new FileInfo(path);
            //если файл не пустой и существует, открывается окно генерации дневника
            if (fileInf.Exists == true && fileInf.Length > 0)
            {
                GenerateDiary f = new GenerateDiary();
                f.ShowDialog();
            }
            //если файл не существует, ошибка
            else if (fileInf.Exists == false)
            {
                MessageBox.Show(
                    "Файл с информацией о погоде не найден.",
                    "ERROR!",
                    MessageBoxButtons.OK,
                    MessageBoxIcon.Error,
                    MessageBoxDefaultButton.Button1,
                    MessageBoxOptions.DefaultDesktopOnly);
            }

            //если файл пустой, ошибка
            else if (fileInf.Length == 0)
            {
                MessageBox.Show(
                    "Файл не содержит данных.",
                    "ERROR!",
                    MessageBoxButtons.OK,
                    MessageBoxIcon.Error,
                    MessageBoxDefaultButton.Button1,
                    MessageBoxOptions.DefaultDesktopOnly);
            }

            else
            {
                MessageBox.Show(
                    "Неопознанная ошибка. Пожалуйста, обратитесь за помощью к разработчику ПО",
                    "ERROR!",
                    MessageBoxButtons.OK,
                    MessageBoxIcon.Error,
                    MessageBoxDefaultButton.Button1,
                    MessageBoxOptions.DefaultDesktopOnly);
            }
        }
        //функция выборки по погоде
        void WeatherConditionsMode(GenerateDiary form)
        {
            //по температуре
            if (form.TemperatureUpDown.Value != 0)
            {
                iewc = from c in classExemps where Convert.ToDecimal(c.temperature) == form.TemperatureUpDown.Value select c;
            }
            //по навправлению ветра
            if (Convert.ToString(form.WindDirectionBox.SelectedItem) != "")
            {
                iewc = from c in classExemps where c.wind == form.WindDirectionBox.SelectedItem.ToString() select c;
            }
            //по облачности
            if (Convert.ToString(form.CloudBox.SelectedItem) != "")
            {
                iewc = from c in classExemps where c.cloudness == form.CloudBox.SelectedItem.ToString() select c;
            }
            //по давлению
            if (form.PressureUpDown.Value != 0)
            {
                iewc = from c in classExemps where Convert.ToDecimal(c.atmPressure) == form.PressureUpDown.Value select c;
            }
            //по силе ветра
            if (form.WindUpDown.Value != 0)
            {
                iewc = from c in classExemps where Convert.ToDecimal(c.windSpeed) == form.WindUpDown.Value select c;
            }
            //по влажности
            if (form.HumidityUpDown.Value != 0)
            {
                iewc = from c in classExemps where Convert.ToDecimal(c.humidity) == form.HumidityUpDown.Value select c;
            }
            //по кол-ву осадков
            if (form.PercipitationUpDown.Value != 0)
            {
                iewc = from c in classExemps where Convert.ToDecimal(c.percipitationAmmount) == form.PercipitationUpDown.Value select c;
            }

            //----------------------------------------------------------------------------------------------------------------------------
            //без осадков
            if (form.NothingCB.Checked)
            {
                percipCheck += form.NothingCB.Text;
                iewc         = from c in classExemps where c.percipitations == percipCheck select c;
            }
            //град
            if (form.HailCB.Checked)
            {
                percipCheck += form.HailCB.Text;
                iewc         = from c in classExemps where c.percipitations == percipCheck select c;
            }
            //туман
            if (form.FogCB.Checked)
            {
                percipCheck += form.FogCB.Text;
                iewc         = from c in classExemps where c.percipitations == percipCheck select c;
            }
            //гроза
            if (form.ThunderstormCB.Checked)
            {
                percipCheck += form.ThunderstormCB.Text;
                iewc         = from c in classExemps where c.percipitations == percipCheck select c;
            }
            //снег
            if (form.SnowCB.Checked)
            {
                percipCheck += form.SnowCB.Text;
                iewc         = from c in classExemps where c.percipitations == percipCheck select c;
            }
            //дождь
            if (form.RainCB.Checked)
            {
                percipCheck += form.RainCB.Text;
                iewc         = from c in classExemps where c.percipitations == percipCheck select c;
            }
        }
 public Result(GenerateDiary form)
 {
     InitializeComponent();
     GetData(form);
 }