/// <summary> /// 대시보드 테이블 업무 영역을 추가한다. /// </summary> public bool AddFormTableSection(FormTableSection formSection, IEnumerable <string> fileSourceUploaders) { using (var repo = new FormTableRepository()) { repo.BeginTransaction(); try { if (repo.InsertFormTableSection(formSection)) { repo.InsertFormTableSectionGroupMembers(formSection.FormId, formSection.FormSectionId, fileSourceUploaders, formSection.CreatedDate); if (formSection.FileTemplate != null) { repo.InsertDateFileTemplate(formSection.FileTemplate); } else { logger.Warn($"업무영역 정보로부터 파일 템플릿 정보를 찾을 수 없습니다. 업무영역: \"{formSection.FormSectionName}\"" + $"\r\n\r\n" + $"{formSection}"); } repo.CommitTransaction(); logger.Info($"새 업무영역을 추가하였습니다. 업무영역: \"{formSection.FormSectionName}\"" + $"\r\n\r\n" + $"{formSection}"); return(true); } } catch (Exception ex) { logger.Error(ex, $"업무영역 추가 중 알 수 없는 오류가 발생하였습니다. 업무영역: \"{formSection.FormName}/{formSection.FormSectionName}\"" + $"\r\n\r\n" + $"{formSection}"); try { repo.RollBackTransaction(); } catch (Exception rex) { logger.Fatal(ex, $"업무영역 추가 함수에서 롤백 실행중 치명적인 에러가 발생했습니다. 업무영역: \"{formSection.FormName}/{formSection.FormSectionName}\"" + $"\r\n\r\n" + $"{formSection}"); ExceptionDispatchInfo.Capture(rex).Throw(); // not reached } ExceptionDispatchInfo.Capture(ex).Throw(); return(false); // not reached } return(false); } }