示例#1
0
    {   //methods
        public Models.Country Deserialize(string rawData)
        {
            CountryInfo countryInfo = new CountryInfo();

            rawData = rawData.TrimStart('[');
            rawData = rawData.TrimEnd(']');
            Models.Country tempElement = new Models.Country();
            try
            {
                countryInfo = JsonConvert.DeserializeObject <CountryInfo>(rawData);
            }
            catch (Exception e)
            {
                System.Windows.Forms.MessageBox.Show(e.Message);
                return(tempElement);
            }


            tempElement.Name       = countryInfo.Name;
            tempElement.Code       = countryInfo.Alpha3Code;
            tempElement.Area       = countryInfo.Area;
            tempElement.Population = countryInfo.Population;
            tempElement.Cap.Name   = countryInfo.Capital;
            tempElement.Reg.Name   = countryInfo.Region;

            //TempElement.Show();
            return(tempElement);
        }
示例#2
0
        //Methods
        private void SearchButton_Click(object sender, EventArgs e)
        {
            string countryinput = CountryInputBox.Text;

            CountryInfoExctractor exctractor = new CountryInfoExctractor();

            //проверка заполненности поля ввода
            if (countryinput == "")
            {
                System.Windows.Forms.MessageBox.Show("Input field cannot be empty!");
            }
            else
            {
                //Получение данных о стране в виде строки RawData в формате JSON с помощью внешнего API
                String RawData = exctractor.RequestCountryInfo(countryinput);

                if (RawData != "")
                {
                    //Десериализация строки RawData в объект country типа Country
                    Deserializer   DSL     = new Deserializer();
                    Models.Country country = DSL.Deserialize(RawData);

                    //Отображение объекта country в TableView
                    Representation repr = new Representation(country);
                    TableView.DataSource = repr.Table;
                    TableView.Visible    = true;

                    //Приглашение на сохранение CI
                    if (country.Name != "")
                    {
                        SaveInfo(country);
                    }
                }
            }
        }
示例#3
0
        //constructors
        //Таблица для отображения всех стран из базы
        public Representation(ArrayList list)
        {
            Table = new DataTable("Country Information");
            this.MakeHeaders();

            for (int i = 0; i < list.Count; i++)
            {
                Models.Country CI = ((Models.Country)list[i]);
                AddRow(CI);
            }
        }
示例#4
0
        //Заполнение строк
        private void AddRow(Models.Country CI)
        {
            DataRow row;

            row    = Table.NewRow();
            row[0] = CI.Name;
            row[1] = CI.Cap.Name;
            row[2] = CI.Reg.Name;
            row[3] = CI.Code;
            row[4] = CI.Area;
            row[5] = CI.Population;

            Table.Rows.Add(row);
        }
示例#5
0
        private void SaveInfo(Models.Country country)
        {
            //Диалог с предложением сохранения
            DialogResult result = MessageBox.Show("Вы хотите сохранить результат поиска в базу данных?", "Подтвердите действие", MessageBoxButtons.YesNo, MessageBoxIcon.Question);

            if (result == DialogResult.Yes)
            {
                //Проверка наличия столицы страны country в таблице 'Города'.
                //Если Id не найден, значение country.сap.Name записывается в таблицу 'Города'
                //и Id новой записи записывается в country.Cap.Id
                country.Cap.Id = ((Models.Capital)country.Cap.FindIfExist()[0]).Id;
                if (country.Cap.Id == 0)
                {
                    country.Cap.InsertinDB();
                    country.Cap.Id = ((Models.Capital)country.Cap.FindIfExist()[0]).Id;
                }
                //System.Windows.Forms.MessageBox.Show(p_CI.Cap.Id.ToString());

                //Проверка наличия Региона страны country в таблице 'Регионы'.
                //Если Id не найден, значение country.reg.Name записывается в таблицу 'Регионы'
                //и Id новой записи записывается в country.reg.Id
                country.Reg.Id = ((Models.Region)country.Reg.FindIfExist()[0]).Id;
                if (country.Reg.Id == 0)
                {
                    country.Reg.InsertinDB();
                    country.Reg.Id = ((Models.Region)country.Reg.FindIfExist()[0]).Id;
                }
                //System.Windows.Forms.MessageBox.Show(p_CI.Reg.Id.ToString());

                //Проверка наличия страны country в таблице 'Страны'.
                //Если Id не найден, значение country.Name записывается в таблицу 'Страны'
                //и Id новой записи записывается в country.Id
                //иначе, значения найденной записи обновляются
                country.Id = ((Models.Country)country.FindIfExist()[0]).Id;
                if (country.Id == 0)
                {
                    country.InsertinDB();
                    country.Id = ((Models.Country)country.FindIfExist()[0]).Id;
                }
                else
                {
                    country.UpdateRecord();
                }
                System.Windows.Forms.MessageBox.Show("Success.");
            }
        }
示例#6
0
 //Таблица для отображения одной страны (найденной в поиске)
 public Representation(Models.Country CI)
 {
     Table = new DataTable("Country Information");
     this.MakeHeaders();
     AddRow(CI);
 }