using framework_business; using framework_library; using System; using System.Collections; using System.Collections.Generic; using System.Data; using System.Linq; using System.Reflection; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; public partial class controls_module_userLink : System.Web.UI.UserControl, IControlBase { /// /// page load /// /// /// protected void Page_Load(object sender, EventArgs e) { } /// /// set current selected user /// /// private void SetSelectedUser(oSurfaceItem surfaceItem) { if (ddlUserLink.Items.FindByValue(surfaceItem.userLink.ToString()) != null) ddlUserLink.SelectedValue = surfaceItem.userLink.ToString(); } /// /// populate users dropdownlist /// private void PopulateUsers() { ArrayList users = new ArrayList(); try { users = xData.GetTypedByCriteriaSpecific("recId", typeof(oUser), "isActive,userType,customerCode", "1," + pNums.UserType.WebsiteUser.GetHashCode() + "," + handler.ReturnSetup().code, "email", "pal_", true); ddlUserLink.DataSource = users; ddlUserLink.DataTextField = "email"; ddlUserLink.DataValueField = "recId"; ddlUserLink.DataBind(); ddlUserLink.Items.Insert(0, new ListItem("Select a User", "0")); } catch (Exception ex) { exception.HandleException("userLink:", MethodBase.GetCurrentMethod().Name, ex, Session["user"]); Response.Redirect("Error.aspx", false); } } /// /// save button event /// /// /// protected void btnSaveUserLink_Click(object sender, EventArgs e) { SaveControlData(); } /// /// reload control event /// public void ReloadControl() { try { if (utils.verifySession("userLinkItemId")) { int itemId = Convert.ToInt32(Session["userLinkItemId"].ToString()); oSurfaceItem surfaceItem = (oSurfaceItem)xData.GetTypedByCriteriaSpecific("recId", typeof(oSurfaceItem), "recId", itemId.ToString())[0]; foreach (ovUserShared userItem in xData.GetTypedByCriteriaSpecific("recId", typeof(ovUserShared), "recId", surfaceItem.userLink.ToString())) { lblUser.Text = userItem.email; } DataTable surfaceItemData = xData.GetSurfaceItemData(surfaceItem.surfaceId, itemId); string itemDisplay = ""; if (handler.ReturnSetup().code == "GLOB-1" || handler.ReturnSetup().code == "GLOB-2" || handler.ReturnSetup().code == "MEDI-1") { foreach (DataRow row in surfaceItemData.Rows) { itemDisplay = row.Table.Columns.Contains("PatientInformation_PatientDetails_FirstNames") ? row["PatientInformation_PatientDetails_FirstNames"].ToString() : ""; itemDisplay += row.Table.Columns.Contains("PatientInformation_PatientDetails_Surname") ? " " + row["PatientInformation_PatientDetails_Surname"].ToString() : " "; itemDisplay += row.Table.Columns.Contains("PatientInformation_PatientDetails_PatientNumber") ? " " + ("(" + row["PatientInformation_PatientDetails_PatientNumber"].ToString() + ")") : " "; } } lblItem.Text = itemDisplay; PopulateUsers(); SetSelectedUser(surfaceItem); } } catch (Exception ex) { exception.HandleException("userLink:", MethodBase.GetCurrentMethod().Name, ex, Session["user"]); Response.Redirect("/error", false); } } /// /// save data /// public void SaveControlData() { int itemId = Convert.ToInt32(Session["userLinkItemId"].ToString()); oSurfaceItem surfaceItem = (oSurfaceItem)xData.GetTypedByCriteriaSpecific("recId", typeof(oSurfaceItem), "recId", itemId.ToString())[0]; surfaceItem.userLink = Convert.ToInt32(ddlUserLink.SelectedValue); xData.UpdateTyped("recId", surfaceItem.recId.ToString(), typeof(oSurfaceItem), surfaceItem); //CVH 2017-11-17 Update query table, otherwise it doesn't show for linked user until surface data is saved xData.SaveSurfaceItemToQueryTable(surfaceItem.surfaceId, surfaceItem.recId); } }