private void addColumns(CAssess assess, SqlConnection con) { foreach (CItem item in assess.items) { SqlCommand cmd; if (Regex.IsMatch(item.sqlSchemeName, @"ItemScore\d{2}")) { cmd = new SqlCommand(String.Format(@" alter table {0} add {1} int ", assess.sqlTableName, item.sqlSchemeName), con); } else { cmd = new SqlCommand(String.Format(@" alter table {0} add {1} nvarchar(100) ", assess.sqlTableName, item.sqlSchemeName), con); } try { cmd.ExecuteNonQuery(); } catch (Exception ex) { message = ex.Message; } } }
private void createAssessTable(CAssess assess) { SqlConnection con = new SqlConnection(connectionString); con.Open(); SqlCommand cmd = new SqlCommand(String.Format(@" create table {0} ( ID_{0} int identity(1, 1), ID_User nvarchar(20) not null, ID_Patient nvarchar(20) not null, RecordDate date not null primary key (ID_{0}), foreign key (ID_User) references Users(ID_User), foreign key (ID_Patient) references Patients(ID_Patient) ) ", assess.sqlTableName), con); try { cmd.ExecuteNonQuery(); } catch (Exception ex) { message = ex.Message; } addColumns(assess, con); con.Close(); }
private void loadItem(CAssess assess) { if (dvAssessItemStyles.Count > 0) { for (int i = 0; i < dvAssessItemStyles.Count; i++) { if (Convert.ToInt32(dvAssessItemStyles.Table.Rows[i]["ID_Assess"]) == assess.id) { CItem item = new CItem(); item.id = Convert.ToInt32(dvAssessItemStyles.Table.Rows[i]["ID_Item"]); item.assess_id = Convert.ToInt32(dvAssessItemStyles.Table.Rows[i]["ID_Assess"]); item.name = dvAssessItemStyles.Table.Rows[i]["ItemName"].ToString(); item.sqlSchemeName = dvAssessItemStyles.Table.Rows[i]["SchemeName"].ToString(); item.contents = new List <CContent>(); loadContent(item); if (dvAssessItemStyles.Table.Rows[i]["ID_Group"].ToString() != "") { int id_group = Convert.ToInt32(dvAssessItemStyles.Table.Rows[i]["ID_Group"]); loadGroup(item, id_group); } assess.items.Add(item); items.Add(item); } } } }
protected void btnDeleteAssess_Click(object sender, EventArgs e) { if (ddlAssessName.SelectedIndex != 0) { CAssess assess = assessFactory.getByName(ddlAssessName.SelectedItem.Text); assessFactory.deleteAssessStyle(assess); Response.Redirect("assess.aspx"); } }
private void loadAssess() { SqlDataSource sds1 = new SqlDataSource(); sds1.ConnectionString = connectionString; sds1.SelectCommand = "dbo.getAssessStyles"; sds1.SelectCommandType = SqlDataSourceCommandType.StoredProcedure; dvAssessStyles = sds1.Select(DataSourceSelectArguments.Empty) as DataView; SqlDataSource sds2 = new SqlDataSource(); sds2.ConnectionString = connectionString; sds2.SelectCommand = "dbo.getAssessItemStyles"; sds2.SelectCommandType = SqlDataSourceCommandType.StoredProcedure; dvAssessItemStyles = sds2.Select(DataSourceSelectArguments.Empty) as DataView; SqlDataSource sds3 = new SqlDataSource(); sds3.ConnectionString = connectionString; sds3.SelectCommand = "dbo.getAssessItemContentStyles"; sds3.SelectCommandType = SqlDataSourceCommandType.StoredProcedure; dvAssessItemContentStyles = sds3.Select(DataSourceSelectArguments.Empty) as DataView; SqlDataSource sds4 = new SqlDataSource(); sds4.ConnectionString = connectionString; sds4.SelectCommand = "dbo.getAssessItemGroupStyles"; sds4.SelectCommandType = SqlDataSourceCommandType.StoredProcedure; dvAssessItemGroupStyles = sds4.Select(DataSourceSelectArguments.Empty) as DataView; if (dvAssessStyles.Count > 0) { assesses.Clear(); for (int i = 0; i < dvAssessStyles.Count; i++) { CAssess assess = new CAssess(); assess.id = Convert.ToInt32(dvAssessStyles.Table.Rows[i]["ID_Assess"]); assess.name = dvAssessStyles.Table.Rows[i]["AssessName"].ToString(); assess.sqlTableName = dvAssessStyles.Table.Rows[i]["TableName"].ToString(); assess.items = new List <CItem>(); loadItem(assess); assesses.Add(assess); } } }
//----------------------------------------新增評估表樣式完成----------------------------------------// public void deleteAssessStyle(CAssess assess) { try { SqlDataSource sds = new SqlDataSource(); sds.ConnectionString = connectionString; sds.DeleteCommand = "dbo.deleteAssessStyle"; sds.DeleteCommandType = SqlDataSourceCommandType.StoredProcedure; sds.DeleteParameters.Add(new Parameter("ID_Assess", DbType.Int32, assess.id.ToString())); sds.Delete(); message = "delete success"; } catch (Exception ex) { message = ex.Message; } }
private void loadAssessLite() { SqlDataSource sds = new SqlDataSource(); sds.ConnectionString = connectionString; sds.SelectCommand = "dbo.getAssessStyles"; sds.SelectCommandType = SqlDataSourceCommandType.StoredProcedure; DataView dv = sds.Select(DataSourceSelectArguments.Empty) as DataView; if (dv.Count > 0) { assesses.Clear(); for (int i = 0; i < dv.Count; i++) { CAssess assess = new CAssess(); assess.id = Convert.ToInt32(dv.Table.Rows[i]["ID_Assess"]); assess.name = dv.Table.Rows[i]["AssessName"].ToString(); assess.sqlTableName = dv.Table.Rows[i]["TableName"].ToString(); assesses.Add(assess); } } }
protected void Page_Load(object sender, EventArgs e) { if (Session["loginName"] != null) { user = userFactory.getByAccount(Session["loginName"].ToString()); } int assess_id = 0; if (Request.QueryString["pid"] != null && Request.QueryString["aid"] != null && Request.QueryString["sid"] != null) { assess_id = Convert.ToInt32(Request.QueryString["aid"]); patient_id = Request.QueryString["pid"]; schedule_id = Convert.ToInt32(Request.QueryString["sid"]); } myAssess = assessFactory.getById(assess_id); isFinished = scheduleFactory.getById(schedule_id).isFinished; lblAssessName.Text = myAssess.name; CGroup group = new CGroup(); group.id = 0; int groupCount = 0; foreach (CItem item in myAssess.items) { if (item.group != null) { //item有group if (!item.group.id.Equals(group.id)) { //不同group if (groupCount > 0) { if (isFinished) { Label lblGroupScore = new Label(); lblGroupScore.Text = "分數:" + groupScore.ToString(); PlaceHolder1.Controls.Add(new LiteralControl("<div class='panel-primary panel-footer'><span class='glyphicon glyphicon-ok' aria-hidden='true'></span>")); PlaceHolder1.Controls.Add(lblGroupScore); PlaceHolder1.Controls.Add(new LiteralControl("</div>")); } PlaceHolder1.Controls.Add(new LiteralControl("</div>")); } group.id = item.group.id; Label lblGroupName = new Label(); lblGroupName.Text = item.group.name; lblGroupName.CssClass = "label"; PlaceHolder1.Controls.Add(new LiteralControl("<div class='panel panel-primary' style='font-size:X-large'><div class='panel-heading'>")); PlaceHolder1.Controls.Add(lblGroupName); PlaceHolder1.Controls.Add(new LiteralControl("</div>")); groupCount++; groupScore = 0; } } else { //item沒group groupCount = 0; if (groupCount > 0) { PlaceHolder1.Controls.Add(new LiteralControl("</div>")); } } //加入項目 addItem(item); } PlaceHolder1.Controls.Add(new LiteralControl("</div>")); Button btnSubmit = new Button(); if (isFinished) { lbltotalScore.Visible = true; lbltotalScore.Text = "總分:" + totalScore.ToString(); btnSubmit.Text = "上一頁"; btnSubmit.Click += btnBack_Click; btnSubmit.CssClass = "btn btn-large btn-block btn-danger"; } else { btnSubmit.Text = "送出"; btnSubmit.Click += btnSubmit_Click; btnSubmit.CssClass = "btn btn-large btn-block btn-success"; } btnSubmit.Height = 60; btnSubmit.Font.Size = 18; btnSubmit.ForeColor = Color.Black; PlaceHolder1.Controls.Add(btnSubmit); }
protected void Page_Load(object sender, EventArgs e) { CAssessFactory assessFactory = new CAssessFactory("lite"); int formCount = Request.Form.Count; if (Request.Form["assessName"] != null) { CAssess assess = new CAssess(); assess.name = Request.Form["assessName"]; assess.items = new List <CItem>(); for (int i = 1; i < formCount; i++) { string groupName = "groupName" + i; if (Request.Form[groupName] != null) { CGroup group = new CGroup(); group.name = Request.Form[groupName]; for (int j = 1; j < formCount; j++) { string itemNameInGroup = "itemName" + i + "-" + j; if (Request.Form[itemNameInGroup] != null) { CItem item = new CItem(); item.name = Request.Form[itemNameInGroup]; item.group = group; item.sqlSchemeName = "ItemScore"; item.contents = new List <CContent>(); for (int k = 1; k < formCount; k++) { string contentNameInGroup = "contentName" + i + "-" + j + "-" + k; string contentScoreInGroup = "contentScore" + i + "-" + j + "-" + k; if (Request.Form[contentNameInGroup] != null && Request.Form[contentScoreInGroup] != null) { CContent content = new CContent(); content.content = Request.Form[contentNameInGroup]; content.score = Convert.ToInt32(Request.Form[contentScoreInGroup]); item.contents.Add(content); } } assess.items.Add(item); continue; } string textNameInGroup = "textName" + i + "-" + j; if (Request.Form[textNameInGroup] != null) { CItem item = new CItem(); item.name = Request.Form[textNameInGroup]; item.group = group; item.sqlSchemeName = "ItemText"; assess.items.Add(item); continue; } } continue; } string itemName = "itemName" + i; if (Request.Form[itemName] != null) { CItem item = new CItem(); item.name = Request.Form[itemName]; item.sqlSchemeName = "ItemScore"; item.contents = new List <CContent>(); for (int j = 1; j < formCount; j++) { string contentNameInGroup = "contentName" + i + "-" + j; string contentScoreInGroup = "contentScore" + i + "-" + j; if (Request.Form[contentNameInGroup] != null && Request.Form[contentScoreInGroup] != null) { CContent content = new CContent(); content.content = Request.Form[contentNameInGroup]; content.score = Convert.ToInt32(Request.Form[contentScoreInGroup]); item.contents.Add(content); } } assess.items.Add(item); continue; } string textName = "textName" + i; if (Request.Form[textName] != null) { CItem item = new CItem(); item.name = Request.Form[textName]; item.sqlSchemeName = "ItemText"; assess.items.Add(item); continue; } } assessFactory.addAssessStyle(assess); Response.Write("新增評估表樣式完成"); } }
//----------------------------------------新增評估表樣式----------------------------------------// public void addAssessStyle(CAssess assess) { try { SqlDataSource sds1 = new SqlDataSource(); sds1.ConnectionString = connectionString; sds1.InsertCommand = "dbo.addAssessStyle"; sds1.InsertCommandType = SqlDataSourceCommandType.StoredProcedure; sds1.InsertParameters.Add(new Parameter("AssessName", DbType.String, assess.name)); sds1.Insert(); loadAssessLite(); //addAssessItemGroupStyle List <CGroup> groups = new List <CGroup>(); foreach (CItem item in assess.items) { if (groups.Count == 0) { groups.Add(item.group); addAssessItemGroupStyle(item.group); continue; } bool notHaveSameGroup = true; foreach (CGroup group in groups) { if (item.group == group) { notHaveSameGroup = false; break; } } if (notHaveSameGroup) { groups.Add(item.group); addAssessItemGroupStyle(item.group); } } //addAssessItemStyle SqlDataSource sds2 = new SqlDataSource(); sds2.ConnectionString = connectionString; sds2.SelectCommand = "dbo.getAssessItemGroupStyles"; sds2.SelectCommandType = SqlDataSourceCommandType.StoredProcedure; DataView dvGroups = sds2.Select(DataSourceSelectArguments.Empty) as DataView; foreach (CItem item in assess.items) { if (item.group != null) { for (int i = dvGroups.Count - 1; i >= 0; i--) { if (dvGroups.Table.Rows[i]["GroupName"].ToString() == item.group.name) { int group_id = Convert.ToInt32(dvGroups.Table.Rows[i]["ID_Group"]); addAssessItemStyle(item, getLast().id, group_id, item.sqlSchemeName); break; } } } else { addAssessItemStyle(item, getLast().id, 0, item.sqlSchemeName); } } //addAssessItemContentStyle SqlDataSource sds3 = new SqlDataSource(); sds3.ConnectionString = connectionString; sds3.SelectCommand = "dbo.getAssessItemStyles"; sds3.SelectCommandType = SqlDataSourceCommandType.StoredProcedure; DataView dvItems = sds3.Select(DataSourceSelectArguments.Empty) as DataView; foreach (CItem item in assess.items) { if (item.contents != null) { for (int i = dvItems.Count - 1; i >= 0; i--) { if (dvItems.Table.Rows[i]["ItemName"].ToString() == item.name) { int item_id = Convert.ToInt32(dvItems.Table.Rows[i]["ID_Item"]); foreach (CContent content in item.contents) { addAssessItemContentStyle(content, item_id); } break; } } } } //createTable loadAssess(); createAssessTable(getLast()); message = "add success"; } catch (Exception ex) { message = ex.Message; } }