/// <summary> /// 대시보드 테이블을 추가한다. /// </summary> public bool AddFormTable(FormTable formTable) { using (var repo = new FormTableRepository()) { if (!formTable.HasHtmlTemplate) { throw new ArgumentNullException($"대시보드에 해당하는 HTML양식을 찾을 수 없습니다. 대시보드: {formTable.Name}" + $"\r\n" + $"대시보드 ID: {formTable.FormId}"); } repo.BeginTransaction(); try { if (repo.InsertFormTable(formTable)) { if (repo.InsertFormHtmlTemplate(formTable.HtmlTemplate)) { repo.CommitTransaction(); logger.Info($"새 대시보드를 추가하였습니다. 대시보드: \"{formTable.Name}\"" + $"\r\n\r\n" + $"{formTable}"); return(true); } } } catch (Exception ex) { logger.Error(ex, $"대시보드 추가 중 알 수 없는 오류가 발생하였습니다. 대시보드: \"{formTable.Name}\"" + $"\r\n\r\n" + $"{formTable}"); try { repo.RollBackTransaction(); } catch (Exception rex) { logger.Fatal(ex, $"대시보드 추가 함수에서 롤백 실행중 치명적인 에러가 발생했습니다. 대시보드: \"{formTable.Name}\"" + $"\r\n\r\n" + $"{formTable}"); ExceptionDispatchInfo.Capture(rex).Throw(); // not reached } ExceptionDispatchInfo.Capture(ex).Throw(); return(false); // not reached } return(false); } }