예제 #1
0
        private void dgv_People_CellClick(object sender, DataGridViewCellEventArgs e)
        {
            if (dgv_People.CurrentRow.Index + 1 == dgv_People.Rows.Count)
            {
                //Если щёлкнули в последней строке таблицы - переход в режим
                //добавления новой записи -
                id = -1;     //Сброс идентификатора
                ClearForm(); //Очистка формы
                return;      //Выход из обработчика
            }

            //Подгрузка в форму данных выбранного в таблице человека
            id = Convert.ToInt32(dgv_People.CurrentRow.Cells[0].Value);

            if (MySettings.Default.ProtocolXmlRpc)
            {
                XMLRPC_Person person = xmlrpc_proxy.ReadPerson(id);

                tb_ID.Text   = person.ID.ToString();
                tb_Name.Text = person.Name;
                tb_Age.Text  = person.Age.ToString();
                tb_Mail.Text = person.Mail;

                //Выделение в раскрывающемся списке
                //языка, который знает данный человек.
                foreach (ItemComboBox item in list)
                {
                    if (item.Id == person.LanguageID)
                    {
                        cb_Language.SelectedItem = item;
                    }
                }
            }
            //...то же самое для остальных протоколов:
            else if (MySettings.Default.ProtocolSoap)
            {
                SOAP_Person person = soap_proxy.ReadPerson(id);

                tb_ID.Text   = person.ID.ToString();
                tb_Name.Text = person.Name;
                tb_Age.Text  = person.Age.ToString();
                tb_Mail.Text = person.Mail;

                foreach (ItemComboBox item in list)
                {
                    if (item.Id == person.LanguageID)
                    {
                        cb_Language.SelectedItem = item;
                    }
                }
            }
            else if (MySettings.Default.ProtocolRest)
            {
                REST_Person person = rest_proxy.ReadPerson(id);

                tb_ID.Text   = person.ID;
                tb_Name.Text = person.Name;
                tb_Age.Text  = person.Age.ToString();
                tb_Mail.Text = person.Mail;

                foreach (ItemComboBox item in list)
                {
                    if (item.Id == person.LanguageID)
                    {
                        cb_Language.SelectedItem = item;
                    }
                }
            }
        }
예제 #2
0
        private void btn_Save_Click(object sender, EventArgs e)
        {
            //Сохранение данных, введённых в форму
            if (MySettings.Default.ProtocolXmlRpc)
            {
                XMLRPC_Person person = new XMLRPC_Person();
                person.Name       = tb_Name.Text;
                person.Age        = Convert.ToInt32(tb_Age.Text);
                person.Mail       = tb_Mail.Text;
                person.LanguageID = (cb_Language.SelectedItem as ItemComboBox).Id;

                if (id < 0)                            //Если идентификатор не задан или сброшен -
                {
                    xmlrpc_proxy.CreatePerson(person); //создание нового человека
                }
                else //иначе (идентификатор задан) -
                     //обновление человека с заданным идентификатором:
                {
                    xmlrpc_proxy.UpdatePerson(
                        id,
                        person
                        );
                }
            }
            //...то же самое для остальных протоклов:
            else if (MySettings.Default.ProtocolSoap)
            {
                if (id < 0)
                {
                    soap_proxy.CreatePerson(
                        tb_Name.Text,
                        Convert.ToInt32(tb_Age.Text),
                        tb_Mail.Text,
                        (cb_Language.SelectedItem as ItemComboBox).Id
                        );
                }
                else
                {
                    soap_proxy.UpdatePerson(
                        id,
                        tb_Name.Text,
                        Convert.ToInt32(tb_Age.Text),
                        tb_Mail.Text,
                        (cb_Language.SelectedItem as ItemComboBox).Id
                        );
                }
            }
            else if (MySettings.Default.ProtocolRest)
            {
                if (id < 0)
                {
                    rest_proxy.CreatePerson(new REST_Person(
                                                tb_Name.Text,
                                                Convert.ToInt32(tb_Age.Text),
                                                tb_Mail.Text,
                                                (cb_Language.SelectedItem as ItemComboBox).Id
                                                ));
                }
                else
                {
                    rest_proxy.UpdatePerson(id, new REST_Person(
                                                tb_Name.Text,
                                                Convert.ToInt32(tb_Age.Text),
                                                tb_Mail.Text,
                                                (cb_Language.SelectedItem as ItemComboBox).Id
                                                ));
                }
            }

            //По завершении сохранения:

            if (id >= 0)
            {
                id = -1;  //Сброс идентификатора
            }
            UpdateGrid(); //Обновление таблицы
            ClearForm();  //Очистка форма
        }