示例#1
0
        /// <summary>
        /// Вывести список сотрудников на контрол DataGridView, настроенный через SetUpGrid. Не очищает имеющиеся элементы.
        /// </summary>
        /// <param name="grid"></param>
        /// <param name="department"></param>
        public async void SelectEmployeeToGrid(DepartmentCS department)
        {
            try
            {
                MainForm.EmployeeDataGridView.Rows.Clear();
                var employees = await _serviceManager.GetEmployeesByDepartment(department.ID);

                MainForm.EmployeeDataGridView.SelectEmployeeToGrid(employees.ToArray());
            }
            catch (FaultException <DefaultFault> ex) // контролируемая ситуация на сервисе
            {
                // сообщение об ошибке для пользователя
                MessageBox.Show(ex.Detail.Message, ex.Action, MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            catch (FaultException) // непредвиденная проблема на сервисе, см лог на сервисе
            {
                // неизвестная ошибка на сервисе
                MessageBox.Show("Неизвестная ошибка сервиса. Операция не выполнена.", null, MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            catch (Exception ex) // что-то совсем пошло не так (включая CommunicationException и TimeOutException)
            {
                MessageBox.Show("Возникла ошибка: " + ex.Message, null, MessageBoxButtons.OK, MessageBoxIcon.Error);
                _logger.Error(ex, "Ошибка в загрузке сотрудников");
            }
        }