/// <summary>
        /// Сохранить сущность.
        /// </summary>
        /// <param name="professionalWork">Сущность.</param>
        /// <returns>Идентификатор сущности.</returns>
        public int SaveProfessionalWork(ProfessionalWork professionalWork)
        {
            Argument.NotNull(professionalWork, "Не указана сущность.");
            var isEdit = professionalWork.ProfessionalWorkId > 0;

            ValidateSave(professionalWork);

            using (IUnitOfWork unitOfWork = _unitOfWorkFactory.Create(_configuration))
            {
                if (isEdit)
                {
                    unitOfWork.ProfessionalWorkRepository.Update(professionalWork);
                    return(professionalWork.ProfessionalWorkId);
                }
                else
                {
                    return(unitOfWork.ProfessionalWorkRepository.Insert(professionalWork));
                }
            }
        }
        /// <summary>
        /// Сохранить сущность.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void Btn_Save_Click(object sender, EventArgs e)
        {
            try
            {
                var entity = new ProfessionalWork
                {
                    ProfessionalWorkId = _professionalWorkId,
                    PlanId             = _planId,
                    Name      = tbName.Text,
                    Date      = tbDate.Text,
                    Execution = tbExecution.Text,
                    Hours     = numHours.Value == 0 ? null : (double?)numHours.Value
                };
                _professionalWorkService.SaveProfessionalWork(entity);

                DialogResult = DialogResult.OK;
                Close();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
 /// <summary>
 /// Удалить существующий экземпляр сущности.
 /// </summary>
 /// <param name="item">Модель экземпляра сущности.</param>
 public void Delete(ProfessionalWork item)
 {
     _dataContext.Connection.Delete(item, _dataContext.Transaction);
 }
 /// <summary>
 /// Вставить новый экземпляр сущности.
 /// </summary>
 /// <param name="item">Модель нового экземпляра сущности.</param>
 /// <returns>Идентификатор нового экземпляра сущности.</returns>
 public int Insert(ProfessionalWork item)
 {
     return((int)_dataContext.Connection.Insert(item, _dataContext.Transaction));
 }
 /// <summary>
 /// Валидация сохранения.
 /// </summary>
 /// <param name="professionalWork">Сущность.</param>
 private void ValidateSave(ProfessionalWork professionalWork)
 {
     Argument.NotNull(professionalWork, "Не указана сущность.");
     Argument.Require(professionalWork.PlanId > 0, "Не указан план.");
     Argument.NotNullOrWhiteSpace(professionalWork.Name, "Не указано название.");
 }