示例#1
0
        /// <summary>
        /// Метод для поиска столицы и региона по Id. Метод инкапсулирован для внутреннего использования в классе.
        /// </summary>
        /// <param name="CityId">Id столицы</param>
        /// <param name="RegionId">Id региона</param>
        /// <returns></returns>
        private CountriesInfo GetById(int CityId, int RegionId)
        {
            CountriesInfo country = new CountriesInfo();

            try
            {
                using (SqlConnection connect = new SqlConnection(connection))
                {
                    connect.Open();
                    string City = "SELECT * FROM [Cities] WHERE @Id = Id";
                    try
                    {
                        using (SqlCommand sqlCommand = new SqlCommand(City, connect))
                        {
                            sqlCommand.Parameters.AddWithValue("@Id", CityId);
                            sqlCommand.ExecuteNonQuery();

                            try
                            {
                                using (var sqlRead = sqlCommand.ExecuteReader())
                                {
                                    while (sqlRead.Read())
                                    {
                                        country.Capital = sqlRead.GetValue(1).ToString();
                                    }
                                }
                            }
                            catch (Exception exp) { MessageBox.Show(exp.Message); }
                        }
                    }
                    catch (Exception exp) { MessageBox.Show(exp.Message); }

                    string Region = "SELECT * FROM [Regions] WHERE @Id = Id";
                    try
                    {
                        using (SqlCommand sqlCommand = new SqlCommand(Region, connect))
                        {
                            sqlCommand.Parameters.AddWithValue("@Id", RegionId);
                            sqlCommand.ExecuteNonQuery();
                            try
                            {
                                using (var sqlRead = sqlCommand.ExecuteReader())
                                {
                                    while (sqlRead.Read())
                                    {
                                        country.Region = sqlRead.GetValue(1).ToString();
                                    }
                                }
                            }
                            catch (Exception exp) { MessageBox.Show(exp.Message); }
                        }
                    }
                    catch (Exception exp) { MessageBox.Show(exp.Message); }
                    connect.Close();
                }
            }
            catch (Exception exp) { MessageBox.Show(exp.Message); }
            return(country);
        }
示例#2
0
        public Form1()
        {
            InitializeComponent();
            info = new CountriesInfo();
            ServerSettings.LoadValues();

            if (ServerSettings.Trigger())
            {
                AddSource();
            }
        }
示例#3
0
        /// <summary>
        /// Вспомогательные методы
        /// </summary>
        /// <param name="info"> Экземпляр класса, содержащего данные о стране</param>
        #region MyMethods

        private void TextFilling(CountriesInfo info)
        {
            if (info != null)
            {
                textBox1.Text = info.Code;
                textBox2.Text = info.Capital;
                textBox4.Text = Convert.ToString(info.Area);
                textBox5.Text = Convert.ToString(info.Population);
                textBox6.Text = info.Region;
            }
        }
示例#4
0
        /// <summary>
        /// Метод формирования массива элементов для заполнения таблицы DataGrid
        /// </summary>
        /// <param name="countries">Экземпляр класса, содержащего данные о стране</param>
        /// <returns></returns>
        private string[] FieldMassive(CountriesInfo countries)
        {
            string[] elements = new string[6];
            elements[0] = countries.Country;
            elements[1] = countries.Code;
            elements[2] = countries.Capital;
            elements[3] = Convert.ToString(countries.Area);
            elements[4] = Convert.ToString(countries.Population);
            elements[5] = countries.Region;

            return(elements);
        }
示例#5
0
        private void button1_Click(object sender, EventArgs e)
        {
            if (textBox3.Text != null)
            {
                WebServiceRequest request = new WebServiceRequest();

                if (request.CheckSite())
                {
                    // Заполнение массива параметров подключения к ДБ в случае, если пришлось вводить их самому в полях настроек
                    if (ServerSettings.Trigger())
                    {
                        AddSource();
                    }

                    // Получение от ресурса json страницы
                    //request.Connection(textBox3.Text);

                    // С помощью метода Parsing ищем страну и используя метод ShowData получаем экземпляр CountriesInfo, содержащий необходимые данные
                    info = request.ShowData(request.Parsing(textBox3.Text));

                    //Заполняем окна информацией о стране
                    TextFilling(info);

                    if (info != null)
                    {   // Выводим диалоговое окно с предложением сохранить данные в БД
                        DialogResult dialogResult = MessageBox.Show("Сохранить информацию в базе данных?", "Страна найдена", MessageBoxButtons.YesNo);
                        if (dialogResult == DialogResult.Yes)
                        {
                            if (parametrs.Length == 4)
                            {
                                DataBase data = new DataBase(parametrs[0], parametrs[1], parametrs[2], parametrs[3]); //.SearchUpdate(info.Code, info.Capital, info.Region, info.Country, info.Area, info.Population);
                                data.SearchCity(info.Capital);
                                data.SearchRegion(info.Region);
                                data.SearchCountry(info.Code);
                                data.AddOrUpdateCountry(info.Code, info.Country, info.Area, info.Population);
                                TextClear();
                            }
                            else
                            {
                                MessageBox.Show("Настройте подключение");
                            }
                        }
                        else if (dialogResult == DialogResult.No)
                        {
                            //похоже не пригодилось
                        }
                    }
                }
            }
        }
        /// <summary>
        /// Метод, возвращающий необходимые данные о стране
        /// </summary>
        /// <param name="json">Параметр, содержащий набор json данных о конкретной стране</param>
        /// <returns></returns>
        public CountriesInfo ShowData(JSONNode json)
        {
            if (json != null)
            {
                CountriesInfo info = new CountriesInfo();

                info.Country    = json[0]["name"].Value;
                info.Code       = json[0]["alpha2Code"].Value;
                info.Capital    = json[0]["capital"].Value;
                info.Region     = json[0]["region"].Value;
                info.Area       = json[0]["area"].AsDouble;
                info.Population = json[0]["population"].AsInt;

                return(info);
            }
            else
            {
                return(null);
            }
        }
示例#7
0
        /// <summary>
        /// Метод для получения данных по всем странам в БД. Возвращает список стран, если они вообще есть.
        /// </summary>
        /// <returns></returns>
        public List <CountriesInfo> GetAllValues()
        {
            string value = "SELECT * FROM Countries";
            List <CountriesInfo> countries = new List <CountriesInfo>();

            try
            {
                using (SqlConnection connect = new SqlConnection(connection))
                {
                    connect.Open();
                    try
                    {
                        using (SqlCommand command = new SqlCommand(value, connect))
                        {
                            using (var read = command.ExecuteReader())
                            {
                                while (read.Read())
                                {
                                    CountriesInfo country = new CountriesInfo();
                                    country.Country    = read.GetValue(1).ToString();
                                    country.Code       = read.GetValue(2).ToString();
                                    country.Area       = Convert.ToDouble(read.GetValue(4));
                                    country.Population = Convert.ToInt32(read.GetValue(5));
                                    int CityId   = Convert.ToInt32(read.GetValue(3));
                                    int RegionId = Convert.ToInt32(read.GetValue(6));
                                    country.Capital = GetById(CityId, RegionId).Capital;
                                    country.Region  = GetById(CityId, RegionId).Region;
                                    countries.Add(country);
                                }
                            }
                        }
                    }
                    catch (Exception exp) { MessageBox.Show(exp.Message); }
                    connect.Close();
                }
            }
            catch (Exception exp) { MessageBox.Show(exp.Message); }

            return(countries);
        }