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);
}
}