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; } } } }
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(); //Очистка форма }