protected void GrdNote_RowDataBound(object sender, GridViewRowEventArgs e) { try { UserView userView = UserView.GetInstance(); // if there exists note with the type not in the list of types offered on this screen, use this to add below with "foundRows" DataTable allNoteTypes = DBBase.GetGenericDataTable(null, "NoteType", "note_type_id", "descr"); DataTable allBodyParts = DBBase.GetGenericDataTable(null, "BodyPart", "body_part_id", "descr"); DataTable noteTypes = IsValidFormScreen() ? ScreenNoteTypesDB.GetDataTable_ByScreenID(GetFormScreen()) : allNoteTypes; DataTable sites = SiteDB.GetDataTable(); DataTable dt = ViewState["noteinfo_data"] as DataTable; bool tblEmpty = (dt.Rows.Count == 1 && dt.Rows[0][0] == DBNull.Value); if (!tblEmpty && e.Row.RowType == DataControlRowType.DataRow) { Label lblId = (Label)e.Row.FindControl("lblId"); DataRow[] foundRows = dt.Select("note_id=" + lblId.Text); DataRow thisRow = foundRows[0]; bool isDeleted = thisRow["deleted_by"] != DBNull.Value || thisRow["date_deleted"] != DBNull.Value; DropDownList ddlDate_Day = (DropDownList)e.Row.FindControl("ddlDate_Day"); DropDownList ddlDate_Month = (DropDownList)e.Row.FindControl("ddlDate_Month"); DropDownList ddlDate_Year = (DropDownList)e.Row.FindControl("ddlDate_Year"); if (ddlDate_Day != null && ddlDate_Month != null && ddlDate_Year != null) { ddlDate_Day.Items.Add(new ListItem("--", "-1")); ddlDate_Month.Items.Add(new ListItem("--", "-1")); ddlDate_Year.Items.Add(new ListItem("----", "-1")); for (int i = 1; i <= 31; i++) { ddlDate_Day.Items.Add(new ListItem(i.ToString(), i.ToString())); } for (int i = 1; i <= 12; i++) { ddlDate_Month.Items.Add(new ListItem(i.ToString(), i.ToString())); } for (int i = DateTime.Today.Year - 1; i <= DateTime.Today.Year + 1; i++) { ddlDate_Year.Items.Add(new ListItem(i.ToString(), i.ToString())); } if (thisRow["date_added"] != DBNull.Value) { DateTime Date = Convert.ToDateTime(thisRow["date_added"]); ddlDate_Day.SelectedValue = Date.Day.ToString(); ddlDate_Month.SelectedValue = Date.Month.ToString(); int firstYearSelectable = Convert.ToInt32(ddlDate_Year.Items[1].Value); int lastYearSelectable = Convert.ToInt32(ddlDate_Year.Items[ddlDate_Year.Items.Count - 1].Value); if (Date.Year < firstYearSelectable) { ddlDate_Year.Items.Insert(1, new ListItem(Date.Year.ToString(), Date.Year.ToString())); } if (Date.Year > lastYearSelectable) { ddlDate_Year.Items.Add(new ListItem(Date.Year.ToString(), Date.Year.ToString())); } ddlDate_Year.SelectedValue = Date.Year.ToString(); } } DropDownList ddlNoteType = (DropDownList)e.Row.FindControl("ddlNoteType"); if (ddlNoteType != null) { ddlNoteType.DataSource = noteTypes; ddlNoteType.DataTextField = "descr"; ddlNoteType.DataValueField = "note_type_id"; ddlNoteType.DataBind(); // if this note type is not in the list for this screen, add it to the edit list bool found = false; foreach (ListItem li in ddlNoteType.Items) { if (li.Value == thisRow["note_type_id"].ToString()) { found = true; } } if (!found) { ddlNoteType.Items.Add(new ListItem(thisRow["note_type_descr"].ToString(), thisRow["note_type_id"].ToString())); } ddlNoteType.SelectedValue = thisRow["note_type_id"].ToString(); } DropDownList ddlBodyPart = (DropDownList)e.Row.FindControl("ddlBodyPart"); if (ddlBodyPart != null) { ddlBodyPart.Items.Clear(); ddlBodyPart.Items.Add(new ListItem("", "-1")); for (int i = 0; i < allBodyParts.Rows.Count; i++) { ddlBodyPart.Items.Add(new ListItem(allBodyParts.Rows[i]["body_part_id"].ToString() + ". " + allBodyParts.Rows[i]["descr"].ToString(), allBodyParts.Rows[i]["body_part_id"].ToString())); } ddlBodyPart.SelectedValue = thisRow["body_part_id"].ToString(); } ImageButton lnkEdit = (ImageButton)e.Row.FindControl("lnkEdit"); if (lnkEdit != null) { lnkEdit.Visible = !isDeleted && (userView.IsAdminView || (thisRow["added_by_staff_id"] != DBNull.Value && Convert.ToInt32(thisRow["added_by_staff_id"]) == Convert.ToInt32(Session["StaffID"])) || (thisRow["modified_by_staff_id"] != DBNull.Value && Convert.ToInt32(thisRow["modified_by_staff_id"]) == Convert.ToInt32(Session["StaffID"]))); } /* * DropDownList ddlSite = (DropDownList)e.Row.FindControl("ddlSite"); * if (ddlSite != null) * { * ddlSite.Items.Add(new ListItem("--", "-1")); * foreach (DataRow row in sites.Rows) * ddlSite.Items.Add(new ListItem(row["name"].ToString(), row["site_id"].ToString())); * ddlSite.SelectedValue = thisRow["site_id"].ToString(); * } */ ImageButton lnkDelete = (ImageButton)e.Row.FindControl("lnkDelete"); if (lnkDelete != null) { lnkDelete.Visible = userView.IsAdminView || (thisRow["added_by_staff_id"] != DBNull.Value && Convert.ToInt32(thisRow["added_by_staff_id"]) == Convert.ToInt32(Session["StaffID"])) || (thisRow["modified_by_staff_id"] != DBNull.Value && Convert.ToInt32(thisRow["modified_by_staff_id"]) == Convert.ToInt32(Session["StaffID"])); if (isDeleted) { lnkDelete.CommandName = "_UnDelete"; lnkDelete.ImageUrl = "~/images/tick-24.png"; lnkDelete.ToolTip = "Un-Delete"; } } if (isDeleted) { e.Row.AddCssClass("deleted_note"); e.Row.Style["display"] = "none"; e.Row.Style["color"] = "gray"; } Utilities.AddConfirmationBox(e); if ((e.Row.RowState & DataControlRowState.Edit) > 0) { Utilities.SetEditRowBackColour(e, System.Drawing.Color.LightGoldenrodYellow); } } if (e.Row.RowType == DataControlRowType.Footer) { DropDownList ddlDate_Day = (DropDownList)e.Row.FindControl("ddlNewDate_Day"); DropDownList ddlDate_Month = (DropDownList)e.Row.FindControl("ddlNewDate_Month"); DropDownList ddlDate_Year = (DropDownList)e.Row.FindControl("ddlNewDate_Year"); if (ddlDate_Day != null && ddlDate_Month != null && ddlDate_Year != null) { ddlDate_Day.Items.Add(new ListItem("--", "-1")); ddlDate_Month.Items.Add(new ListItem("--", "-1")); ddlDate_Year.Items.Add(new ListItem("----", "-1")); for (int i = 1; i <= 31; i++) { ddlDate_Day.Items.Add(new ListItem(i.ToString(), i.ToString())); } for (int i = 1; i <= 12; i++) { ddlDate_Month.Items.Add(new ListItem(i.ToString(), i.ToString())); } for (int i = DateTime.Today.Year - 1; i <= DateTime.Today.Year + 1; i++) { ddlDate_Year.Items.Add(new ListItem(i.ToString(), i.ToString())); } ddlDate_Day.SelectedValue = DateTime.Today.Day.ToString(); ddlDate_Month.SelectedValue = DateTime.Today.Month.ToString(); ddlDate_Year.SelectedValue = DateTime.Today.Year.ToString(); } DropDownList ddlNoteType = (DropDownList)e.Row.FindControl("ddlNewNoteType"); ddlNoteType.DataSource = noteTypes; ddlNoteType.DataBind(); DropDownList ddlBodyPart = (DropDownList)e.Row.FindControl("ddlNewBodyPart"); ddlBodyPart.Items.Add(new ListItem("", "-1")); for (int i = 0; i < allBodyParts.Rows.Count; i++) { ddlBodyPart.Items.Add(new ListItem(allBodyParts.Rows[i]["body_part_id"].ToString() + ". " + allBodyParts.Rows[i]["descr"].ToString(), allBodyParts.Rows[i]["body_part_id"].ToString())); } // set note text in cookie in case user logged out, to keep note text for this user and this entity TextBox txtNewText = (TextBox)e.Row.FindControl("txtNewText"); txtNewText.Attributes["onkeyup"] = "set_note(document.getElementById('" + txtNewText.ClientID + "'), document.getElementById('" + userID.ClientID + "').value, document.getElementById('" + entityID.ClientID + "').value);"; /* * DropDownList ddlSite = (DropDownList)e.Row.FindControl("ddlNewSite"); * ddlSite.Items.Add(new ListItem("--", "-1")); * foreach (DataRow row in sites.Rows) * ddlSite.Items.Add(new ListItem(row["name"].ToString(), row["site_id"].ToString())); * ddlSite.SelectedValue = Session["SiteID"].ToString(); */ } } catch (Exception ex) { if (Utilities.IsDev()) { throw; } else { HideTableAndSetErrorMessage(ex is CustomMessageException ? ex.Message : ""); } } }
protected void FillNoteGrid() { if (!IsValidFormID()) { if (!Utilities.IsDev() || Request.QueryString["id"] != null) { HideTableAndSetErrorMessage(); return; } // can still view all if dev and no id set .. but no insert/edit GrdNote.Columns[5].Visible = false; } if (!IsValidFormScreen() && !Utilities.IsDev()) { HideTableAndSetErrorMessage(); return; } DataTable dt = IsValidFormID() ? NoteDB.GetDataTable_ByEntityID(GetFormID(), null, true, true) : NoteDB.GetDataTable(true); if (IsValidFormScreen()) { Hashtable allowedNoteTypes = new Hashtable(); DataTable noteTypes = ScreenNoteTypesDB.GetDataTable_ByScreenID(GetFormScreen()); for (int i = 0; i < noteTypes.Rows.Count; i++) { allowedNoteTypes[Convert.ToInt32(noteTypes.Rows[i]["note_type_id"])] = 1; } for (int i = dt.Rows.Count - 1; i >= 0; i--) { if (allowedNoteTypes[Convert.ToInt32(dt.Rows[i]["note_type_id"])] == null) { dt.Rows.RemoveAt(i); } } } UserView userView = UserView.GetInstance(); bool canSeeModifiedBy = userView.IsStakeholder || userView.IsMasterAdmin; dt.Columns.Add("last_modified_note_info_visible", typeof(Boolean)); for (int i = 0; i < dt.Rows.Count; i++) { dt.Rows[i]["last_modified_note_info_visible"] = canSeeModifiedBy; } ViewState["noteinfo_data"] = dt; // add note info to hidden field to use when emailing notes string emailBodyText = string.Empty; Booking booking = BookingDB.GetByEntityID(GetFormID()); if (booking != null) { emailBodyText += @"<br /><br /> <u>Treatment Information</u> <br /> <table border=""0"" cellpadding=""0"" cellspacing=""0"">" + (booking.Patient == null ? "" : @"<tr><td>Patient</td><td style=""width:10px;""></td><td>" + booking.Patient.Person.FullnameWithoutMiddlename + @"</td></tr>") + (booking.Offering == null ? "" : @"<tr><td>Service</td><td></td><td>" + booking.Offering.Name + @"</td></tr>") + @" <tr><td>Date</td><td></td><td>" + booking.DateStart.ToString("dd-MM-yyyy") + @"</td></tr> <tr><td>Provider</td><td></td><td>" + booking.Provider.Person.FullnameWithoutMiddlename + @"</td></tr> </table>"; } for (int i = 0; i < dt.Rows.Count; i++) { Note n = NoteDB.Load(dt.Rows[i]); emailBodyText += "<br /><br /><u>Note (" + n.DateAdded.ToString("dd-MM-yyyy") + ")</u><br />" + n.Text.Replace(Environment.NewLine, "<br />"); } emailText.Value = emailBodyText + "<br /><br />" + SystemVariableDB.GetByDescr("LettersEmailSignature").Value;; if (dt.Rows.Count > 0) { if (IsPostBack && ViewState["noteinfo_sortexpression"] != null && ViewState["noteinfo_sortexpression"].ToString().Length > 0) { DataView dataView = new DataView(dt); dataView.Sort = ViewState["noteinfo_sortexpression"].ToString(); GrdNote.DataSource = dataView; } else { GrdNote.DataSource = dt; } try { GrdNote.DataBind(); } catch (Exception ex) { this.lblErrorMessage.Visible = true; this.lblErrorMessage.Text = ex.ToString(); } } else { dt.Rows.Add(dt.NewRow()); GrdNote.DataSource = dt; GrdNote.DataBind(); int TotalColumns = GrdNote.Rows[0].Cells.Count; GrdNote.Rows[0].Cells.Clear(); GrdNote.Rows[0].Cells.Add(new TableCell()); GrdNote.Rows[0].Cells[0].ColumnSpan = TotalColumns; GrdNote.Rows[0].Cells[0].Text = "No Record Found"; } Tuple <string, string, string, string> refsEmailInfo = GetReferrersEmail(); ImageButton btnEmail = GrdNote.HeaderRow.FindControl("btnEmail") as ImageButton; if (refsEmailInfo != null) { btnEmail.Visible = true; ((HiddenField)GrdNote.HeaderRow.FindControl("hiddenRefEmail")).Value = refsEmailInfo.Item1; ((HiddenField)GrdNote.HeaderRow.FindControl("hiddenRefName")).Value = refsEmailInfo.Item2; ((HiddenField)GrdNote.HeaderRow.FindControl("hiddenBookingOrg")).Value = refsEmailInfo.Item3; ((HiddenField)GrdNote.HeaderRow.FindControl("HiddenBookingPatientName")).Value = refsEmailInfo.Item4; } else { btnEmail.Visible = false; } DisallowAddEditIfNoPermissions(); // place this after databinding }