private IClient DeactivateEditMode() { IClient result = clientInfoCard.Client; if (result != null) //если значение не установилось - пользователь отменил закрытие. { foreach (var tel in result.Telephones) { var existClient = ClientList.FindClientByTelephone(tel, false); if (existClient != null && existClient != result) { var dlgResult = MessageBox.Show( String.Format("Один из введённых телефонных номеров уже присутсвует в базе данных: телефон <{0}> приписан клиенту с именем <{1}>.{2}" + "Использовать запись уже существующего клиента?{2}(Нет - создать запись с дублирующимся телефоном.{2}" + "ВНИМАНИЕ! Поиск по номеру телефона выдает первую найденную запись!)", tel, existClient.Name, Environment.NewLine), "Телефон уже внесён в базу", MessageBoxButtons.YesNoCancel); switch (dlgResult) { case System.Windows.Forms.DialogResult.Yes: result = existClient; break; case System.Windows.Forms.DialogResult.No: break; default: return(result); } } if (existClient == result) { grpSelectClient.Visible = true; grpSelectClient.Enabled = true; grpEditMode.Visible = false; grpEditMode.Enabled = false; clientInfoCard.Enabled = false; lstClientList.DataSource = clientList.List.Cast <INamedEntity>().ToList(); lstClientList.SelectedItem = result; return(result); } } if (!clientList.List.Contains(result)) { grpSelectClient.Visible = true; grpSelectClient.Enabled = true; grpEditMode.Visible = false; grpEditMode.Enabled = false; clientInfoCard.Enabled = false; clientList.Add(result); } lstClientList.DataSource = clientList.List.Cast <INamedEntity>().ToList(); lstClientList.SelectedItem = result; } return(result); //return null; }