/// <summary> /// 대시보드 테이블 html 양식 아이템을 반환한다. /// </summary> public FormHtmlTemplate SelectFormHtmlTemplate(Guid formId, Guid templateId) { string procCommandName = "up_FormHtmlTemplate_Select"; try { var command = Connection.GetStoredProcCommand(procCommandName); Connection.AddInParameter(command, "FormID", DbType.Guid, formId); Connection.AddInParameter(command, "HtmlTemplateID", DbType.Guid, templateId); using (DataSet ds = Connection.ExecuteDataSet(command)) { ValidateTableCount(ds, 1); if (ds.Tables[0].Rows.Count > 0) { return(FormHtmlTemplate.ParseFrom(ds.Tables[0].Rows[0])); } return(null); } } catch (Exception ex) { throw new DataException($"프로시져 실행 중 예기치 못한 에러가 발생했습니다.\r\n 프로시저: \"{procCommandName}\"", ex); } }
/// <summary> /// 대시보드 테이블 html 양식 리스트를 반환한다. /// </summary> public IEnumerable <FormHtmlTemplate> SelectFormHtmlTemplateList() { string procCommandName = "up_FormHtmlTemplate_SelectList"; try { var command = Connection.GetStoredProcCommand(procCommandName); using (DataSet ds = Connection.ExecuteDataSet(command)) { ValidateTableCount(ds, 1); var list = new List <FormHtmlTemplate>(); foreach (DataRow dr in ds.Tables[0].Rows) { var template = FormHtmlTemplate.ParseFrom(dr); list.Add(template); } return(list); } } catch (Exception ex) { throw new DataException($"프로시져 실행 중 예기치 못한 에러가 발생했습니다.\r\n 프로시저: \"{procCommandName}\"", ex); } }
/// <summary> /// 페이징 처리된 대시보드 테이블 리스트를 반환한다. /// </summary> public PagedModel <FormTable> SelectFormTablePagedList(PagingOption option) { string procCommandName = "up_FormTable_SelectPagedList"; try { var command = Connection.GetStoredProcCommand(procCommandName); Connection.AddInParameter(command, "PageNumber", DbType.Int32, option.PageNumber); Connection.AddInParameter(command, "PageCount", DbType.Int32, option.PageCount); Connection.AddInParameter(command, "SortBy", DbType.String, option.SortBy); Connection.AddInParameter(command, "OrderBy", DbType.String, option.OrderBy.ToEnumMemberString()); using (DataSet ds = Connection.ExecuteDataSet(command)) { ValidateTableCount(ds, 2); var result = new PagedModel <FormTable>(option) { PagingOption = option }; int totalCount = 0; // 1. 대시보드 테이블 리스트 foreach (DataRow dr in ds.Tables[0].Rows) { var form = FormTable.ParseFrom(dr, out totalCount); result.Items.Add(form); } // 2. 대시보드 테이블 양식 리스트 foreach (DataRow dr in ds.Tables[1].Rows) { var template = FormHtmlTemplate.ParseFrom(dr); var forms = result.Items.FindAll(o => o.FormId == template.FormId && o.HtmlTemplateId == template.HtmlTemplateId); if (forms.Any()) { forms.ForEach(o => { o.HtmlTemplate = template; }); } } result.TotalCount = totalCount; return(result); } } catch (Exception ex) { throw new DataException($"프로시져 실행 중 예기치 못한 에러가 발생했습니다.\r\n 프로시저: \"{procCommandName}\"", ex); } }
/// <summary> /// 대시보드 테이블 리스트를 반환한다. /// </summary> /// <param name="queryUserId">값이 있는 경우, 해당 유저가 접근 가능한 데이터만 반환</param> public IEnumerable <FormTable> SelectFormTableList(string queryUserId = null) { string procCommandName = "up_FormTable_SelectList"; try { var command = Connection.GetStoredProcCommand(procCommandName); Connection.AddInParameter(command, "QueryUserID", DbType.String, queryUserId); using (DataSet ds = Connection.ExecuteDataSet(command)) { ValidateTableCount(ds, 2); var result = new List <FormTable>(); // 1. 대시보드 테이블 리스트 foreach (DataRow dr in ds.Tables[0].Rows) { var form = FormTable.ParseFrom(dr); result.Add(form); } // 2. 대시보드 테이블 양식 리스트 foreach (DataRow dr in ds.Tables[1].Rows) { var template = FormHtmlTemplate.ParseFrom(dr); var forms = result.FindAll(o => o.FormId == template.FormId && o.HtmlTemplateId == template.HtmlTemplateId); if (forms.Any()) { forms.ForEach(o => { o.HtmlTemplate = template; }); } } return(result); } } catch (Exception ex) { throw new DataException($"프로시져 실행 중 예기치 못한 에러가 발생했습니다.\r\n 프로시저: \"{procCommandName}\"", ex); } }
/// <summary> /// 페이징 처리된 대시보드 테이블 html 양식 리스트를 반환한다. /// </summary> public PagedModel <FormHtmlTemplate> SelectFormHtmlTemplatePagedList(PagingOption option) { string procCommandName = "up_FormHtmlTemplate_SelectPagedList"; try { var command = Connection.GetStoredProcCommand(procCommandName); Connection.AddInParameter(command, "PageNumber", DbType.Int32, option.PageNumber); Connection.AddInParameter(command, "PageCount", DbType.Int32, option.PageCount); Connection.AddInParameter(command, "SortBy", DbType.String, option.SortBy); Connection.AddInParameter(command, "OrderBy", DbType.String, option.OrderBy.ToEnumMemberString()); using (DataSet ds = Connection.ExecuteDataSet(command)) { ValidateTableCount(ds, 1); var result = new PagedModel <FormHtmlTemplate>(option) { PagingOption = option }; int totalCount = 0; foreach (DataRow dr in ds.Tables[0].Rows) { var template = FormHtmlTemplate.ParseFrom(dr, out totalCount); result.Items.Add(template); } result.TotalCount = totalCount; return(result); } } catch (Exception ex) { throw new DataException($"프로시져 실행 중 예기치 못한 에러가 발생했습니다.\r\n 프로시저: \"{procCommandName}\"", ex); } }